Matplotlib使刻度标签的字体变小

在matplotlib图中,如何使ax1.set_xticklabels()更小的刻度标签的字体大小?

而且,怎样才能把它从水平转到垂直呢?

请注意,较新版本的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, eg #tick.label.set_fontsize('x-small') tick.label.set_rotation('vertical') fig.suptitle('Matplotlib xticklabels Example') plt.show() if __name__ == '__main__': xticklabels_example() 

在这里输入图像描述

实际上有一个更简单的方法。 我刚刚发现:

 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部分的大小。

另外,你可以做:

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

要同时指定字体大小和旋转,请尝试以下操作:

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

你也可以用像这样的一行来改变标签显示参数,比如fontsize:

 zed = [tick.label.set_fontsize(14) for tick in ax.yaxis.get_major_ticks()] 

在当前版本的Matplotlib中,你可以做axis.set_xticklabels(labels, fontsize='small')

对于较小的字体,我使用

ax1.set_xticklabels(xticklabels,fontsize = 7)

它的工作原理!

plt.tick_params(axis ='both',which ='minor',labelsize = 12)