Graphiques avec python

Installation des outils nécessaires

Python est normalement installé par défaut pour beaucoup de distribution linux. Tous les modules ne sont pas forcement disponibles. Sous debian, pour installer les modules supplémentaires, simplement faire:

apt-get install python-numpy python-gnuplot python-matplotlib

Graphique

Python peut faire beaucoup de choses notamment des graphiques. Il existe plusieurs possibilité pour ca.

Utiliser Gnuplot (en association avec numpy) pour montrer des surfaces:

from numpy import *
import Gnuplot
x=arange(0,10)
y=arange(0,10)
z=random.standard_normal((10,10))
g = Gnuplot.Gnuplot(debug=1)
g('set data style linespoints')
g.splot(Gnuplot.GridData(z,x,y, binary=0))

En gardant en tête que pour un graphique plus classique, il suffisait de faire:

from numpy import *
import Gnuplot
x=arange(0,10)
y=arange(0,10)
d = Gnuplot.Data(x, y,title='Diagonale', with='linespoints 3 3')
g = Gnuplot.Gnuplot(debug=1)
g.title('Un titre')
g.plot(d)

Et pour avoir tout ca dans un fichier, ajouter la commande (pour un ps):

g.hardcopy(filename="test.ps",terminal="postscript",color="True")

Si vous préférez un fichier png:

g.hardcopy(filename="test.png",terminal="png")

La librairie matplotlib permet de produire des graphiques un peu plus interactifs. Un premier exemple basique étant (issu du tutorial):

from pylab import *
t = arange(0.0, 5.2, 0.2)

# red dashes, blue squares and green triangles
plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
show()

La souris permet de redimensionner les axes, de redéplacer, etc. A noter que matplotlib est concue spécialement pour ne pas déstabiliser les utilisateurs de matlab.

Un peu plus intéressant pour les fans de Latex:

from pylab import *
t = arange(0.0, 2.0, 0.01)
s = sin(2*pi*t)
plot(t,s)
title(r'$\alpha_i > \beta_i$', fontsize=20)
text(1, -0.6, r'$\sum_{i=0}^\infty x_i$', fontsize=20)
text(0.6, 0.6, r'$\cal{A}\rm{sin}(2 \omega t)$',
     fontsize=20)
xlabel('time (s)')
ylabel('volts (mV)')
savefig('mathtext_tut.png', dpi=300)
show()

Et pour une belle sortie en eps: savefig('mathtext_tut.eps', dpi=300)

Comments are closed.