回答
请注意,较新版本的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