Pythonic Matplotlib #

Algumas pessoas preferem escrever mais "Pythonic", código explícito orientado a objetos, em vez de usar a interface pyplot implícita para Matplotlib. Este exemplo mostra como aproveitar a interface explícita do Matplotlib.

A menos que você seja um desenvolvedor de aplicativos, recomendo usar parte da interface pyplot, particularmente os comandos figure, close, subplot, axes e show. Isso esconde de você muita complexidade que você não precisa ver na criação normal de figuras, como instanciar instâncias de DPI, gerenciar as caixas delimitadoras dos elementos da figura, criar e realizar janelas GUI e incorporar figuras nelas.

Se você é um desenvolvedor de aplicativos e deseja incorporar o Matplotlib em seu aplicativo, siga o exemplo de exemplos/embedding_in_wx.py, exemplos/embedding_in_gtk.py ou exemplos/embedding_in_tk.py. Neste caso, você desejará controlar a criação de todas as suas figuras, incorporando-as em janelas de aplicativos, etc.

Se você for um desenvolvedor de aplicativos da Web, talvez queira usar o exemplo em webapp_demo.py, que mostra como usar a tela de figura agg de back-end diretamente, sem nenhum dos globais (figura atual, eixos atuais) que estão presentes no pyplot interface. Observe que, no entanto, não há razão para que a interface pyplot não funcione para desenvolvedores de aplicativos da web.

Se você vir um exemplo no diretório de exemplos escrito na interface pyplot e quiser emular isso usando as verdadeiras chamadas de método Python, há um mapeamento fácil. Muitos desses exemplos usam 'conjunto' para controlar as propriedades da figura. Veja como mapear esses comandos em métodos de instância

A sintaxe do conjunto é:

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

se chamado com um objeto, defina as chamadas:

object.set_somestring(attribute)

se chamado com uma sequência, set faz:

for object in sequence:
   object.set_somestring(attribute)

Então, para o seu exemplo, se a é o seu objeto de eixos, você pode fazer:

a.set_xticklabels([])
a.set_yticklabels([])
a.set_xticks([])
a.set_yticks([])
Uma onda senoidal ou duas
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()

Galeria gerada por Sphinx-Gallery