Comenzando con matplotlib
Sintaxis imperativa frente a orientada a objetos
Matplotlib es compatible con la sintaxis imperativa y orientada a objetos para el trazado. La sintaxis imperativa está intencionalmente diseñada para estar muy cerca de la sintaxis de Matlab.
La sintaxis imperativa (a veces llamada sintaxis de ‘máquina de estado’) emite una serie de comandos, todos los cuales actúan en la figura o eje más reciente (como Matlab). La sintaxis orientada a objetos, por otro lado, actúa explícitamente sobre los objetos (figura, eje, etc.) de interés. Un punto clave en zen of Python establece que lo explícito es mejor que lo implícito, por lo que la sintaxis orientada a objetos es más pitónica. Sin embargo, la sintaxis imperativa es conveniente para los nuevos conversos de Matlab y para escribir guiones de trama pequeños y “desechables”. A continuación se muestra un ejemplo de los dos estilos diferentes.
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0, 2, 0.01)
y = np.sin(4 * np.pi * t)
# Imperative syntax
plt.figure(1)
plt.clf()
plt.plot(t, y)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude (V)')
plt.title('Sine Wave')
plt.grid(True)
# Object oriented syntax
fig = plt.figure(2)
fig.clf()
ax = fig.add_subplot(1,1,1)
ax.plot(t, y)
ax.set_xlabel('Time (s)')
ax.set_ylabel('Amplitude (V)')
ax.set_title('Sine Wave')
ax.grid(True)
Ambos ejemplos producen el mismo gráfico que se muestra a continuación.
Instalación y configuración
Hay varias formas de instalar matplotlib, algunas de las cuales dependerán del sistema que esté utilizando. Si tiene suerte, podrá usar un administrador de paquetes para instalar fácilmente el módulo matplotlib y sus dependencias.
ventanas
En las máquinas con Windows, puede intentar usar el administrador de paquetes pip para instalar matplotlib. Consulte aquí para obtener información sobre cómo configurar pip en un entorno de Windows.
OS X
Se recomienda que utilice el administrador de paquetes pip para instalar matplotlib. Si necesita instalar algunas de las bibliotecas que no son de Python en su sistema (por ejemplo, libfreetype
), considere usar [homebrew] (http://brew.sh/).
Si no puede usar pip por cualquier motivo, intente instalar desde [fuente] (https://github.com/matplotlib/matplotlib).
linux
Idealmente, se debe usar el administrador de paquetes del sistema o pip para instalar matplotlib, ya sea instalando el paquete python-matplotlib
o ejecutando pip install matplotlib
.
Si esto no es posible (por ejemplo, no tiene privilegios de sudo en la máquina que está usando), puede instalar desde [fuente] (https://github.com/matplotlib/matplotlib) usando la opción --user
: python setup.py install --usuario
. Normalmente, esto instalará matplotlib en ~/.local
.
Debian/Gratis
sudo apt-get install python-matplotlib
Fedora/sombrero rojo
sudo yum install python-matplotlib
Solución de problemas
Consulte el [sitio web de matplotlib] solución de problemas para obtener consejos sobre cómo reparar un matplotlib dañado.
Matrices bidimensionales (2D)
Muestre una matriz bidimensional (2D) en los ejes.
import numpy as np
from matplotlib.pyplot import imshow, show, colorbar
image = np.random.rand(4,4)
imshow(image)
colorbar()
show()
Personalizando un diagrama de matplotlib
import pylab as plt
import numpy as np
plt.style.use('ggplot')
fig = plt.figure(1)
ax = plt.gca()
# make some testing data
x = np.linspace( 0, np.pi, 1000 )
test_f = lambda x: np.sin(x)*3 + np.cos(2*x)
# plot the test data
ax.plot( x, test_f(x) , lw = 2)
# set the axis labels
ax.set_xlabel(r'$x$', fontsize=14, labelpad=10)
ax.set_ylabel(r'$f(x)$', fontsize=14, labelpad=25, rotation=0)
# set axis limits
ax.set_xlim(0,np.pi)
plt.draw()
# Customize the plot
ax.grid(1, ls='--', color='#777777', alpha=0.5, lw=1)
ax.tick_params(labelsize=12, length=0)
ax.set_axis_bgcolor('w')
# add a legend
leg = plt.legend( ['text'], loc=1 )
fr = leg.get_frame()
fr.set_facecolor('w')
fr.set_alpha(.7)
plt.draw()