Creando gráficos en Python con matplotlib

¡Hola, pythoneros!

Hoy les hablaré por arribita de un maravilloso módulo de Python llamada matplotlib que permite crear gráficos científicos. Para instalarlo pueden leer la entrada. iPython Notebook: La libreta interactiva de python La sintaxis es muy fácil, tanto que mucho han optado por salirse de una vez del fatídico GNUPlot con su sintaxis diabólica.

He aquí un pequeño ejemplo comentado (guárdelo como ejemplo.py):
#importamos numpy para trabajar con vectores y matrices
import numpy as np
#dentro de numpy hay un módulo de números aleatorios genial
from numpy.random import randn
#ahora importamos matplotlib
import matplotlib as mpl
#por último importamos el módulo de ploteo
import matplotlib.pyplot as plt
#si queremos siempre el mismo gráfico descomente la siguiente línea
#np.random.seed(9221999)
# El pollo, creamos un poco de datos aleatorios
data = randn(75)
# Y generamos un histograma
plt.hist(data)
# finalmete salvamos la figura con el nombre que le demos al script, el formato de salida es tomado de la extensión del archivo, para generar la figura ejecute python ejemplo.py hist.pdf
import sys
plt.savefig(sys.argv[1])
# si estamos en ipython notebook no necesitamos las dos líneas anteriores sino
%matplotlib inline
plt.show()

Al terminar obtenemos algo como esto:

Ejemplo de gráfico con matplotlib

Ejemplo de gráfico con matplotlib

Incluso hay ejemplos más bellos (más complicados)
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
import sys
fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(-2, 2, 0.1)
Y = np.arange(-2, 2, 0.1)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = -np.sin(R)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
linewidth=0, antialiased=False)
ax.set_zlim(-1.01, 1.01)

ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))

fig.colorbar(surf, shrink=0.5, aspect=5)

#plt.show() #ipython notebook
plt.savefig(sys.argv[1])

Esto produce lo siguiente:

gráfico 3D de matplotlib

gráfico 3D de matplotlib

Lo que resta es el estudio de python y de sus módulos numpy, scipy y matplotlib para ver las enormes potencialidades de estos y lo fácil que es producir gráficos con python.

¿Te resultó interesante? Compártelo ...



BishopWolf

Publicado por BishopWolf

Forma parte de GUTL desde el 6 diciembre, 2011. Físico Médico, adicto al Monte Carlo y a la ciencia