1つを極める~matplotlib編part5~
こんにちは。今日も張り切っていきましょう。
前回からmaplotlib.plot()を抜け出して違うメソッドを見てきましたね。
- 真っ白な新しいウィンドウを描画→figure()
- 新たなサブプロットを追加→add_subplot()
- 知っておくと超便利→subplots()
基本的な流れとして
1 figure()で描画するウィンドウを表示
2 add_subplot()で行と列と何処に挿入するか(左上から)を指定
でした。
ただ一気に複数のサブプロットを作りたいときは
subplots()で作るのがいいと説明しました。
今回はsubplots()の引数から説明できればなと思います。
今回の内容
subplots()の引数について
subplots()一気に複数のサブプロットを作りたい便利なやつでしたね。
さらにもう1つの特徴として特定のサブプロットに対して
編集ができるのでした。
しかしsubplots()の機能はそれだけではありません。
ある引数を使うことでそれぞれのサブプロットに
一気に編集をかけることもできるのです。
それがsharex と shareyです。
- sharex
- →全てのサブプロットに同じX軸の目盛を設定
- sharey
- →全てのサブプロットに同じY軸の目盛を設定
となります。
具体的に見ていきましょう。
import matplotlib.pyplot as plt
import numpy as np
fig,axes=plt.subplots(2,1,sharex=True,sharey=True)
x=np.linspace(0,15)
y_1=0.2*x
y_2=0.4*x
axes[0].plot(x,y_1,marker='o',label='0.2x')
axes[1].plot(x,y_2,marker='x',label='0.4x')
fig.legend()
fig
sharex,y=Trueに設定することで2つのプロットで共通の軸が
使われていますね!!
subplotの余白調整・・subplots_adjust
matplotlibを使うとデフォルトの場合サブプロットの周りに
余白が結構できてしまいます。
このsubplots_adjustを使うことで
周りの空白を調整できます。
import matplotlib.pyplot as plt
import numpy as np
fig,axes=plt.subplots(2,2,sharex=True,sharey=True)
for i in range(2):
for j in range(2):
axes[i,j].hist(np.random.randn(50),bins=50,color='k')
fig.subplots_adjust(wspace=0,hspace=0)
fig
wspaceとhspaceはこのような特徴があります。
- wspace
- →サブプロット間の横幅を調整
- hspace
- →サブプロット間の縦幅を調整
XとYの範囲設定→xlim(),ylim()
xlim()とylim()でX軸とY軸の範囲を設定することができます。
引数にはリストを使います。
- xlim()
- →x軸の最少と最大を設定
- ylim()
- →y軸の最少と最大を設定
x=np.linspace(0,np.pi*2)
y=np.sin(x)
plt.plot(x,y,label='sin')
plt.xlim([0,np.pi])
plt.ylim([0,0.5])
plt.legend()
plt.show()