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)