「Matplotlib tips」の版間の差分
提供: Eospedia
行49: | 行49: | ||
** APIは https://matplotlib.org/3.3.2/api/_as_gen/mpl_toolkits.mplot3d.axes3d.Axes3D.html#mpl-toolkits-mplot3d-axes3d-axes3d を参照 | ** APIは https://matplotlib.org/3.3.2/api/_as_gen/mpl_toolkits.mplot3d.axes3d.Axes3D.html#mpl-toolkits-mplot3d-axes3d-axes3d を参照 | ||
* %matplotlib widget と一緒に使うと、3Dプロットの回転とかがマウスドラッグで可能。 | * %matplotlib widget と一緒に使うと、3Dプロットの回転とかがマウスドラッグで可能。 | ||
+ | |||
+ | == プロットの保存 == | ||
+ | === オブジェクト指向インターフェイス === | ||
+ | * ドキュメント | ||
+ | ** https://matplotlib.org/3.3.2/api/_as_gen/matplotlib.figure.Figure.html?highlight=savefig#matplotlib.figure.Figure.savefig | ||
+ | matplotlib.figure.Figureオブジェクト (fig) に対し、 | ||
+ | <pre> | ||
+ | fig.savefig('hoge.png', bbox_inches='tight') | ||
+ | </pre> | ||
+ | * bbox_inches='tight' を付けない場合、例えばfigが 10x7inch@100dpiであれば 1000x700 pixelで画像が保存されるが、図によってはかなりの余白ができてしまう。 | ||
+ | * bbox_inches='tight' を付けると、図の中のコンテンツをできるだけタイトに囲むバウンディングボックスでもって図が保存される。画素数はその分減少するけど無駄な余白が無い。 |
2020年11月4日 (水) 12:33時点における版
目次
参考文献(全般)
JupyterLabでインタラクティブプロット
- 下準備
- ipympl( https://github.com/matplotlib/ipympl )をインストール
- 使い方
- ノートブックの冒頭で以下のマジックコマンドをたたく
%matplotlib widget
始めにinlineにしておいて途中からwidgetに変えるとかは無理。最初から冒頭でwidgetにしておく必要あり。
複数プロット
参考文献
具体例1
- 縦に3つのグラフを並べて、x軸の目盛りとラベルは一番下のみに表示
fig, ax = plt.subplots(nrows=3, ncols=1, figsize=figsize, dpi=dpi, sharex=True) ax[0].plot(epoch, gen_loss) ax[0].set_ylabel('Generator loss') ax[1].plot(epoch, kld) ax[1].set_ylabel('KLD') ax[2].plot(epoch, total_loss) ax[2].set_ylabel('Total loss') ax[2].set_xlabel('Epoch')
3Dプロット
Axes3D
- インポート
from mpl_toolkits.mplot3d import Axed3D import matplotlib.pyplot as plt
- 使い方
fig = plt.figure() ax = fig.add_subplot(111, projection='3d')
- axはAxes3Dというクラスのインスタンスになっていて、3Dプロット用のメソッドを持っている。
- %matplotlib widget と一緒に使うと、3Dプロットの回転とかがマウスドラッグで可能。
プロットの保存
オブジェクト指向インターフェイス
matplotlib.figure.Figureオブジェクト (fig) に対し、
fig.savefig('hoge.png', bbox_inches='tight')
- bbox_inches='tight' を付けない場合、例えばfigが 10x7inch@100dpiであれば 1000x700 pixelで画像が保存されるが、図によってはかなりの余白ができてしまう。
- bbox_inches='tight' を付けると、図の中のコンテンツをできるだけタイトに囲むバウンディングボックスでもって図が保存される。画素数はその分減少するけど無駄な余白が無い。