[matplotlibの使い方] 10. 複数のグラフを作成(subplot)

matplotlib
スポンサーリンク

matplotlibで複数グラフを表示する方法

matplotlibで複数のグラフを表示するために用いるsubplot()について

matplotlibでは、複数のグラフの一度に出力することができる。ここでは、その設定方法について説明する。

モジュールのインポート

グラフの中にグラフを配置

plt.axes()でグラフが生成する。plt.axes()で表示したいグラフのサイズを[left, bottom, width, height]で指定すれば、望みの位置にグラフを作成できる。ax1のグラフの左下を[0,0]、右上を[1.1]とした相対的な座標で位置が決定される。

グラフを縦に配置

各グラフをfig.add_axes()で挿入している。ax1とax2のグラフのサイズを揃え、yの位置を変化させることで、グラフを縦に配置できる。
上のグラフ(ax1)は、xticklabels=[]とすることでx軸の目盛りを非表示にしている。

plt.subplot()について

plt.subplot(3, 2, i)のようにすることで、横3✕縦2の構造をもつグラフ群が作成できる。
順番はグラフ中央に示したテキストのように左上が(3,2,1)、右下が(3,2,6)となる。

subplots_adjust()について

subplotで作成した各グラフ間のスペースは、subplots_adjust()で調整できる。hspace=0.3は縦方向の間隔で、wspaceは横方向の間隔となる。デフォルト値は0.2となっている。

sharex,shareyについて

subplotの各グラフで目盛が表示されると見た目がごちゃごちゃする。この場合、目盛を共有することで視認性が高まる。sharex=’col’, sharey=’row’で、列方向のx軸、行方向のy軸が共有されるため、左側と下側のみに目盛を表示される。

GridSpec()について

GridSpec()により、グラフを表示したい範囲をグリッド状に分割し、グラフを表示したい範囲をax1〜ax4のように指定すれば、より柔軟性の高い複数グラフの図が作成できる。

参考

Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習

コメント