2019年2月7日木曜日

matplotlibでフォント、軸目盛り、マージン設定

matplotlibでグラフのフォントを変更するにはplt.rcParamsを使います。例えば、フォントサイズを14にしたいときは
plt.rcParams["font.size"] = 14

とします。このときは、pltの全てのプロットに対して影響します。plt.plotのパラメータを個別に変えたいとき、例えばtitleのフォントだけを変えたいときは
plt.title('title', fontsize=14)
とします。

スタイルをデフォルトに戻すときは、

plt.style.use('default')

または

plt.rcdefault()

ちなみに、
%matplotlib inline
をセットしていると、デフォルトよりも小さくなっていたりします。
このマジックコマンド側の変更方法はよくわかりませんでした(★)


plt.rcParamsはpltのパラメータの辞書

https://matplotlib.org/api/matplotlib_configuration_api.html

にも載っています。print(plt.rcParams)で一覧を見ることができます。

y軸の目盛りを内向きにしたいとき
plt.rcParams["ytick.direction"] = 'in'

y軸のサブ目盛りをON
plt.rcParams["ytick.minor.visible"] = True

目盛り、マージンをいじる

x,yを与えてplot, showしただけのものです。
このとき、x,y軸とも0から始まっていないことに注意。

%matplotlib inline
import matplotlib.pyplot as plt
x = [1, 2, 4, 6, 8]
y = [1000, 300, 150, 135, 120]
plt.plot(x,y)
plt.show()


numpyを使って、np.arangeで軸の目盛りを作ります。
x軸は1ずつ、y軸は500ずつ目盛りをうちます。
なお、np.arangeではなくてリストで[0, 1, 2, 3, 4, 5, 6, 7, 8]やrange(9)を与えても同じです。

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = [1, 2, 4, 6, 8]
y = [1000, 300, 150, 135, 120]
plt.plot(x,y)
plt.xticks(np.arange(0,9,step=1))
plt.yticks(np.arange(0,1001,step=500))
plt.show()


plt.margins(0.1)として10%のマージンを外側に与えます。
少し見栄えがよくなります。

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = [1, 2, 4, 6, 8]
y = [1000, 300, 150, 135, 120]
plt.plot(x,y)
plt.margins(0.1)
plt.xticks(np.arange(0,9,step=1))
plt.yticks(np.arange(0,1001,step=200))
plt.show()



マージンを1(100%)与えると、9分割した中央にグラフがくるのが分かります。

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = [1, 2, 4, 6, 8]
y = [1000, 300, 150, 135, 120]
plt.plot(x,y)
plt.margins(1)
plt.xticks(np.arange(0,9,step=1))
plt.yticks(np.arange(0,1001,step=200))
plt.show()





0 件のコメント:

コメントを投稿