Matplotlibの図で、ax1.set_xticklabels()
を使って目盛ラベルのフォントサイズを小さくするにはどうすればよいですか?
さらに、どうやって水平から垂直に回転させることができるのでしょうか。
MPLの新しいバージョンにはこのタスクへのショートカットがあります。この質問に対する別の回答の例が示されています。 https://stackoverflow.com/a/11386056/42346
以下のコードは説明のためのものであり、必ずしも最適化されているとは限りません。
import matplotlib.pyplot as plt
import numpy as np
def xticklabels_example():
fig = plt.figure()
x = np.arange(20)
y1 = np.cos(x)
y2 = (x**2)
y3 = (x**3)
yn = (y1,y2,y3)
COLORS = ('b','g','k')
for i,y in enumerate(yn):
ax = fig.add_subplot(len(yn),1,i+1)
ax.plot(x, y, ls='solid', color=COLORS[i])
if i != len(yn) - 1:
# all but last
ax.set_xticklabels( () )
else:
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(14)
# specify integer or one of preset strings, e.g.
#tick.label.set_fontsize('x-small')
tick.label.set_rotation('vertical')
fig.suptitle('Matplotlib xticklabels Example')
plt.show()
if __== '__main__':
xticklabels_example()
実際にはもっと簡単な方法があります。私はちょうど見つけました:
import matplotlib.pyplot as plt
# We prepare the plot
fig = plt.figure(1)
# We define a fake subplot that is in fact only the plot.
ax = fig.add_subplot(111)
# We change the fontsize of minor ticks label
ax.tick_params(axis='both', which='major', labelsize=10)
ax.tick_params(axis='both', which='minor', labelsize=8)
しかしこれはあなたの質問のlabel
の部分の大きさにだけ答えるものです。
フォントサイズと回転を同時に指定するには、これを試してください。
plt.xticks(fontsize=14, rotation=90)
あるいは、次のようにします。
import matplotlib as mpl
label_size = 8
mpl.rcParams['xtick.labelsize'] = label_size
Matplotlibの現在のバージョンでは、あなたはaxis.set_xticklabels(labels, fontsize='small')
をすることができます。
他の選択肢
2つのプロットを並べて表示し、目盛ラベルを別々に調整したいと思います。
上記の解決策は密接でしたが、それらは私のためにうまくいきませんでした。私はこのmatplotlib page から解決策を見つけました。
ax.xaxis.set_tick_params(labelsize=20)
これはトリックをしたそしてポイントにまっすぐだった。私のユースケースでは、調整が必要なのは右側のプロットでした。新しい目盛ラベルを作成してから左のプロットでは、ラベルを set するのと同じプロセスでフォントを調整できました。
すなわち
ax1.set_xticklabels(ax1_x, fontsize=15)
ax1.set_yticklabels(ax1_y, fontsize=15)
したがって、私は正しいプロットに使いました、
ax2.xaxis.set_tick_params(labelsize=24)
ax2.yaxis.set_tick_params(labelsize=24)
微妙な微妙な...私は知っている...しかし、私はこれが誰かに役立つことを願っています:)
マグニチュードラベルの大きさのフォントサイズを調整する方法を誰かが知っていればボーナスポイント。
小さいフォントの場合は、
ax1.set_xticklabels(xticklabels, fontsize=7)
そしてそれはうまくいきます!
次のような行でfontsizeのようなラベル表示パラメータを変更することもできます。
zed = [tick.label.set_fontsize(14) for tick in ax.yaxis.get_major_ticks()]
plt.tick_params(axis='both', which='minor', labelsize=12)
以下は私のために働いた:
ax2.xaxis.set_tick_params(labelsize=7)
ax2.yaxis.set_tick_params(labelsize=7)
上記の利点は、array
のlabels
を提供する必要がなく、axes
上の任意のデータを扱うことができるということです。