Pythonic Matplotlib #

一部の人々は、Matplotlib への暗黙的な pyplot インターフェイスを使用するよりも、より "Pythonic" で明示的なオブジェクト指向コードを書くことを好みます。この例では、明示的な Matplotlib インターフェイスを利用する方法を示します。

アプリケーション開発者でない限り、pyplot インターフェイスの一部、特に figure、close、subplot、axes、および show コマンドを使用することをお勧めします。これらは、DPI インスタンスのインスタンス化、Figure 要素のバウンディング ボックスの管理、GUI ウィンドウの作成と実現、それらへの Figure の埋め込みなど、通常の Figure 作成では必要のない多くの複雑さを隠します。

アプリケーション開発者で、アプリケーションに Matplotlib を組み込みたい場合は、examples/embedding_in_wx.py、examples/embedding_in_gtk.py、examples/embedding_in_tk.py の指示に従ってください。この場合、すべての図の作成、アプリケーション ウィンドウへの埋め込みなどを制御する必要があります。

Web アプリケーション開発者は、pyplot に存在するグローバル (現在の Figure、現在の軸) を使用せずに、バックエンド agg figure キャンバスを直接使用する方法を示す webapp_demo.py の例を使用することをお勧めします。インターフェース。ただし、Web アプリケーション開発者にとって pyplot インターフェースが機能しない理由はないことに注意してください。

pyplot インターフェースで記述された examples dir に例があり、真の Python メソッド呼び出しを使用してそれをエミュレートしたい場合は、簡単なマッピングがあります。これらの例の多くは、'set' を使用して Figure のプロパティを制御します。これらのコマンドをインスタンスメソッドにマップする方法は次のとおりです

セットの構文は次のとおりです。

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

オブジェクトで呼び出された場合は、呼び出しを設定します。

object.set_somestring(attribute)

シーケンスで呼び出された場合、set は次のことを行います。

for object in sequence:
   object.set_somestring(attribute)

あなたの例では、 a が軸オブジェクトの場合、次のことができます。

a.set_xticklabels([])
a.set_yticklabels([])
a.set_xticks([])
a.set_yticks([])
1 つまたは 2 つの正弦波
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()

Sphinx-Gallery によって生成されたギャラリー