回答
請注意,較新版本的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 __name__ == '__main__':
xticklabels_example()
正如一邊:不用循環瀏覽刻度標籤對象,你可以使用'plt.setp'。 (另外,看看'ax.tick_params')例如,你可以'plt.setp(ax.get_xticklabels(),rotation ='vertical',fontsize = 14)''。此外,軸對象有一個'ax.is_last_row()'方法,可以在你的例子中很方便。而不是'如果我!= len ...',你可以做'如果不是ax.is_last_row()'。 (爲什麼它是一種方法,我沒有線索...... Matplotlib討厭屬性,顯然!) –
@Joe:這是我第一次聽說'is_last_row()',謝謝!過去我使用過'plt.setp',並不一定能確定它代表了更加規範的定製刻度標籤的方式。你已經消除了這種懷疑,謝謝。更廣泛地說:你的回答,特別是在'matplotlib'標籤中,經常讓我敬畏。保持偉大的工作。 – bernie
謝謝!我很欣賞客氣的話,特別是來自你的!在這種情況下,Canonical是非常相對的。 'plt.setp'是一個「matlab-ism」,顯式循環可能更加pythonic。作爲一個matlab轉換,我自己,'setp'感覺自然,但每個人都是自己的。任何一個都很可讀,i.m.o. –
居然還有一個更簡單的方法。我剛剛發現:
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.
plot = fig.add_subplot(111)
# We change the fontsize of minor ticks label
plot.tick_params(axis='both', which='major', labelsize=10)
plot.tick_params(axis='both', which='minor', labelsize=8)
這隻能回答你的問題label
部分的大小雖然。
您還可以更改像字號標籤顯示的參數有這樣一行:
zed = [tick.label.set_fontsize(14) for tick in ax.yaxis.get_major_ticks()]
或者,你可以這樣做:
import matplotlib as mpl
label_size = 8
mpl.rcParams['xtick.labelsize'] = label_size
在Matplotlib的當前版本,你可以做axis.set_xticklabels(labels, fontsize='small')
。
對於較小的字體,我用
ax1.set_xticklabels(xticklabels,字體大小= 7)
和它的作品!
plt.tick_params(軸= '兩者',這= '次要',labelsize = 12)
如果您想更改字體大小而不設置新標籤,這是唯一可行的答案。 –
- 1. 在時間軸的刻度標籤中改變字體大小
- 2. 在seaborn中增加刻度標籤字體大小
- 3. 在Matplotlib中更改科學記數法刻度標籤的大小
- 4. R YaleToolkit:如何更改火花線上刻度線標籤的字體大小?
- 5. 如何更改matplotlib中軸對象的刻度的字體大小
- 6. AutoFit標籤字體大小
- 7. facet標籤字體大小
- 8. 更改標籤字體大小
- 9. 更改表格標籤字體大小
- 10. Matplotlib所以日誌軸在指定點上只有較小的刻度標記標籤。還要更改彩條中刻度線標籤的大小
- 11. 如何更改matplotlib中的日誌刻度刻度標籤
- 12. Matlab更改軸刻度的字體大小
- 13. 與matplotlib subplots不一致的刻度標籤字體
- 14. Matplotlib日誌刻度刻度標籤數字格式
- 15. C#Windows窗體標籤字體大小
- 16. python matplotlib增加欄標籤字體大小
- 17. 如何更改標籤的字體(和字體大小)
- 18. matplotlib 2.0更改軸獨立字體大小和圖例字體大小
- 19. 使標籤的字體大小的另一種形式小
- 20. 風格的標籤字體大小
- 21. Matplotlib中的重複刻度標籤
- 22. 調整雙軸上的刻度標籤大小
- 23. 更改字體時TabControl標籤的標題大小調整
- 24. Chart.js軸標籤字體大小
- 25. zedgraph軸標籤字體大小
- 26. Matplotlib:改變指數的字體大小
- 27. Matplotlib:正確的數學字體大小
- 28. 在matplotlib中更改座標軸的顏色,刻度和標籤
- 29. matplotlib format_major_ticks不檢索軸刻度標籤
- 30. Matplotlib缺少x刻度標籤
由於因爲問這個問題,我現在正在努力解決這個問題。我在這裏沒有強烈的意見,但看起來像選民認爲最好的答案不是公認的答案。你怎麼看? –
我是否正確閱讀了至少有5種不同的方法來更改matplotlib中的字體大小? :D – famargar