web-dev-qa-db-ja.com

Python:xおよびyの目盛りラベルのフォントサイズを拡大/縮小する方法

fontsizeの使用中に、xとyの両方の目盛りラベルのmatplotlibを増減する方法を見つけるのに問題があるようです。

set_xticklabels(labels, fontdict=None, minor=False, **kwargs)関数があることは知っていますが、その中のfontsizeを制御する方法を理解できませんでした。

私は何かのように明示的な何かを期待していました

title_string=('My Title')
plt.suptitle(title_string, y=1.0, fontsize=17)

しかし、私は今のところそのようなものを見つけていません。私は何が欠けていますか?

10
FaCoffee

思っていたよりも簡単です。

X軸の目盛りのフォントサイズを設定するには:

x_ticks=['x tick 1','x tick 2','x tick 3']
ax.set_xticklabels(x_ticks, rotation=0, fontsize=8)

Y軸の目盛りに対してそれを行うには:

y_ticks=['y tick 1','y tick 2','y tick 3']
ax.set_yticklabels(y_ticks, rotation=0, fontsize=8)

引数rotationfontsizeは、私が何をしたかを簡単に制御できます。

リファレンス: http://matplotlib.org/api/axes_api.html

2
FaCoffee

set_yticklabelsを使用してフォントサイズを変更することはできません。これにより、ラベルも設定される(つまり、自動フォーマッターがFixedFormatterに置き換えられる)ため、通常は望ましくありません。最も簡単なのは、それぞれのtick_paramsを設定することです:

ax.tick_params(axis="x", labelsize=8)
ax.tick_params(axis="y", labelsize=20)

または

ax.tick_params(labelsize=8)

両方の軸が同じサイズでなければならない場合。

もちろん、 @ tmdavison's answer のようにrcParamsを使用することも可能です。

set_xticklabelsおよびset_yticklabelsの呼び出しでフォントサイズを直接設定できます(前の回答で述べたように)。これは、一度に1つのAxesのみに影響します。

ax.set_xticklabels(x_ticks, rotation=0, fontsize=8)
ax.set_yticklabels(y_ticks, rotation=0, fontsize=8)

ticklabel を使用して、rcParamsフォントサイズをグローバルに(つまり、スクリプト内のすべての図/サブプロットに対して)設定することもできます。

import matplotlib.pyplot as plt

plt.rc('xtick',labelsize=8)
plt.rc('ytick',labelsize=8)

または、同等に:

plt.rcParams['xtick.labelsize']=8
plt.rcParams['ytick.labelsize']=8

最後に、これがすべてのmatplotlibプロットに対して設定したい設定である場合、rcParamsファイルでこれら2つのmatplotlibrcを設定することもできます。

xtick.labelsize      : 8 # fontsize of the x tick labels
ytick.labelsize      : 8 # fontsize of the y tick labels
13
tmdavison

sizeの代わりにキーワードfontsizeを使用します。

1
toti08