Pythonic Matplotlib #

Algunas personas prefieren escribir más "Pythonic", código explícito orientado a objetos, en lugar de usar la interfaz pyplot implícita para Matplotlib. Este ejemplo le muestra cómo aprovechar la interfaz explícita de Matplotlib.

A menos que sea un desarrollador de aplicaciones, le recomiendo usar parte de la interfaz de pyplot, particularmente los comandos figure, close, subplot, axes y show. Estos le ocultan mucha complejidad que no necesita ver en la creación normal de figuras, como instanciar instancias de DPI, administrar los cuadros delimitadores de los elementos de la figura, crear y realizar ventanas GUI e incrustar figuras en ellas.

Si es un desarrollador de aplicaciones y desea integrar Matplotlib en su aplicación, siga el ejemplo de Examples/Embedding_in_wx.py, Examples/Embedding_in_gtk.py o Examples/Embedding_in_tk.py. En este caso, querrá controlar la creación de todas sus figuras, incrustándolas en las ventanas de la aplicación, etc.

Si es un desarrollador de aplicaciones web, es posible que desee usar el ejemplo en webapp_demo.py, que muestra cómo usar el lienzo de la figura agregada del backend directamente, sin ninguna de las variables globales (cifra actual, ejes actuales) que están presentes en el pyplot interfaz. Sin embargo, tenga en cuenta que no hay ninguna razón por la que la interfaz pyplot no funcione para los desarrolladores de aplicaciones web.

Si ve un ejemplo en el directorio de ejemplos escrito en la interfaz de pyplot y desea emularlo usando las verdaderas llamadas al método de Python, existe una asignación sencilla. Muchos de esos ejemplos usan 'set' para controlar las propiedades de la figura. Aquí se explica cómo asignar esos comandos a métodos de instancia.

La sintaxis de conjunto es:

plt.setp(object or sequence, somestring, attribute)

si se llama con un objeto, establezca llamadas:

object.set_somestring(attribute)

si se llama con una secuencia, set hace:

for object in sequence:
   object.set_somestring(attribute)

Entonces, para su ejemplo, si a es su objeto de ejes, puede hacer:

a.set_xticklabels([])
a.set_yticklabels([])
a.set_xticks([])
a.set_yticks([])
Una onda sinusoidal o dos
import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0.0, 1.0, 0.01)

fig, (ax1, ax2) = plt.subplots(2)

ax1.plot(t, np.sin(2*np.pi * t))
ax1.grid(True)
ax1.set_ylim((-2, 2))
ax1.set_ylabel('1 Hz')
ax1.set_title('A sine wave or two')

ax1.xaxis.set_tick_params(labelcolor='r')

ax2.plot(t, np.sin(2 * 2*np.pi * t))
ax2.grid(True)
ax2.set_ylim((-2, 2))
l = ax2.set_xlabel('Hi mom')
l.set_color('g')
l.set_fontsize('large')

plt.show()

Galería generada por Sphinx-Gallery