簡體   English   中英

Python:如何增加/減少 x 和 y 刻度標簽的字體大小?

[英]Python: How to increase/reduce the fontsize of x and y tick labels?

在使用matplotlib我似乎在弄清楚如何增加或減少 x 和 y 刻度標簽的fontsize時遇到問題。

我知道有set_xticklabels(labels, fontdict=None, minor=False, **kwargs)函數,但我無法理解如何控制其中的fontsize

我期待一些明確的東西,比如

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

但到目前為止我還沒有找到類似的東西。 我錯過了什么?

不應使用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 的回答中使用 rcParams 也是可能的。

您可以在調用set_xticklabelsset_yticklabels直接設置字體set_yticklabels (如之前的答案所述)。 這一次只會影響一個Axes

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

請注意,僅當您首先固定刻度的位置時才應使用此方法(例如使用ax.set_xticks )。 如果你沒有改變默認的刻度位置,你可以只改變刻度標簽的字體大小而不用使用ax.tick_params改變文本

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

或者

ax.tick_params(axis='both', labelsize=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 圖設置的設置,您還可以在matplotlibrc文件中設置這兩個rcParams

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

使用關鍵字size而不是fontsize

它比我想象的要簡單。

要設置 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM