Matplotlib - ikymrkw/pydepot GitHub Wiki

描画方法

  • グラフ
  • 散布図
  • ヒストグラム
    • plt.hist(x, bins=100) のようにする。デフォルトのビン数は10。

等高線図

x = np.linspace(-1.0, 1.0)
y = np.linspace(-1.0, 1.0)
X, Y = np.meshgrid(x, y)
plt.contour(X, Y, f(X, Y))  # または contourf
plt.axes().set_aspect('equal')  # オプション: 縦横軸のスケールを合わせる
plt.colorbar()  # オプション: 
plt.show()

Subplots のカラーバーを外側に表示

import matplotlib.pyplot as plt
fig, axs = plt.subplots(9, 9)
for i in range(9*9):
    ax = axs.flat[i]
    img = ax.imshow(images[i])
    ax.axis('off')

# make a global colorbar
# https://stackoverflow.com/questions/13784201/how-to-have-one-colorbar-for-all-subplots
fig.subplots_adjust(right=0.8)
cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])
fig.colorbar(img, cax=cbar_ax)  # img はカラーバーの対象となるもの。今回はたまたま最後の画像プロット。

plt.show()

FAQ

非GUI環境で画像ファイルを出力するには

非X環境のLinux等で matplotlib を実行すると「DISPLAY 環境変数がない」などと怒られるが、 matplotlib.use('Agg') とするとGUIがなくても実行できる。

テキストに日本語を使うには

何もせず日本語を使うと、日本語文字は四角で代替表示されてしまう。

  1. まず matplotlib に日本語フォントを認識させる。

次のようにすると現在認識されているフォントのリストを得られる。

import matplotlib.font_manager as fm
fm.findSystemFonts()

認識させるには普通にフォントをインストールすればよいが、matplotlib がフォントリストをキャッシュしているので、キャッシュをクリアして再認識させる必要がある。Windowsなら ~/.matplotlib/、Linux なら ~/.cache/matplotlib/ にJSON形式のファイルがあるので、これを削除すればよい。

  1. matplotlib の使うフォントを変更する

1度だけ変えるには次のようにする。

jfont = {'family': 'IPAexGothic'}
ax.set_xlabel('経度', **jfont)