Buscar..


Observaciones

Visión general

matplotlib es una biblioteca de trazado para Python. Proporciona API orientadas a objetos para incrustar gráficos en aplicaciones. Es similar a MATLAB en capacidad y sintaxis.

Fue escrito originalmente por JDHunter y se está desarrollando activamente. Se distribuye bajo una licencia BSD-Style.

Versiones

Versión Versiones de Python compatibles Observaciones Fecha de lanzamiento
1.3.1 2.6, 2.7, 3.x Versión estable más antigua 2013-10-10
1.4.3 2.6, 2.7, 3.x Versión estable anterior 2015-07-14
1.5.3 2.7, 3.x Versión estable actual 2016-01-11
2.x 2.7, 3.x Última versión de desarrollo 2016-07-25

Instalación y configuración

Existen 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.

Windows

En las máquinas con Windows puede intentar usar el administrador de paquetes pip para instalar matplotlib. Consulte aquí para obtener información sobre la configuración de pip en un entorno 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 .

Si no puede usar pip por cualquier motivo, intente instalar desde la fuente .

Linux

Lo ideal sería utilizar 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), entonces puede instalar desde la fuente usando la opción --user : python setup.py install --user . Normalmente, esto instalará matplotlib en ~/.local .

Debian / Ubuntu

sudo apt-get install python-matplotlib

Fedora / Red Hat

sudo yum install python-matplotlib

Solución de problemas

Consulte el sitio web de matplotlib para obtener consejos sobre cómo reparar un matplotlib roto.

Personalizando un gráfico 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()

introduzca la descripción de la imagen aquí

# 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()

introduzca la descripción de la imagen aquí

Sintaxis imperativa vs orientada a objetos

Matplotlib admite sintaxis tanto orientada a objetos como imperativa para el trazado. La sintaxis imperativa está diseñada intencionalmente para estar muy cerca de la sintaxis de Matlab.

La sintaxis imperativa (a veces llamada sintaxis 'máquina de estado') emite una serie de comandos que actúan sobre la figura o el eje más reciente (como Matlab). La sintaxis orientada a objetos, por otra parte, actúa explícitamente sobre los objetos (figura, eje, etc.) de interés. Un punto clave en el zen de Python afirma que explícito es mejor que implícito, por lo que la sintaxis orientada a objetos es más pirónica. Sin embargo, la sintaxis imperativa es conveniente para los nuevos conversos de Matlab y para escribir pequeños guiones de argumento "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 la misma gráfica que se muestra a continuación.

introduzca la descripción de la imagen aquí

Arreglos bidimensionales (2D)

Mostrar 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()

Mostrar matriz bidimensional (2D) con matplotlib



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow