web-dev-qa-db-ja.com

Matplotlibは目盛ラベルのフロントサイズを小さくする

Matplotlibの図で、ax1.set_xticklabels()を使って目盛ラベルのフォントサイズを小さくするにはどうすればよいですか?

さらに、どうやって水平から垂直に回転させることができるのでしょうか。

226
Open the way

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()

enter image description here

98
bernie

実際にはもっと簡単な方法があります。私はちょうど見つけました:

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の部分の大きさにだけ答えるものです。

391
Autiwa

フォントサイズと回転を同時に指定するには、これを試してください。

plt.xticks(fontsize=14, rotation=90)
140
scottlittle

あるいは、次のようにします。

import matplotlib as mpl
label_size = 8
mpl.rcParams['xtick.labelsize'] = label_size 
44
user2468932

Matplotlibの現在のバージョンでは、あなたはaxis.set_xticklabels(labels, fontsize='small')をすることができます。

22
Christoph

他の選択肢

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)

微妙な微妙な...私は知っている...しかし、私はこれが誰かに役立つことを願っています:)

マグニチュードラベルの大きさのフォントサイズを調整する方法を誰かが知っていればボーナスポイント。

enter image description here

14
Kyle Swanson

小さいフォントの場合は、

ax1.set_xticklabels(xticklabels, fontsize=7)

そしてそれはうまくいきます!

14
Pengyao

次のような行でfontsizeのようなラベル表示パラメータを変更することもできます。

zed = [tick.label.set_fontsize(14) for tick in ax.yaxis.get_major_ticks()]
13
ATX_Bigfoot
plt.tick_params(axis='both', which='minor', labelsize=12)
10
jingweimo

以下は私のために働いた:

ax2.xaxis.set_tick_params(labelsize=7)
ax2.yaxis.set_tick_params(labelsize=7)

上記の利点は、arraylabelsを提供する必要がなく、axes上の任意のデータを扱うことができるということです。

8
Cryptoman