Matplotlib使刻度标签字体更小

时间:2011-06-17 18:49:28

标签: python matplotlib

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

此外,如何将其从水平旋转到垂直?

10 个答案:

答案 0 :(得分:394)

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

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.  
ax = fig.add_subplot(111)

# We change the fontsize of minor ticks label 
ax.tick_params(axis='both', which='major', labelsize=10)
ax.tick_params(axis='both', which='minor', labelsize=8)

这只会回答问题label部分的大小。

答案 1 :(得分:144)

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

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

答案 2 :(得分:98)

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

enter image description here

答案 3 :(得分:44)

或者,您可以这样做:

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

答案 4 :(得分:23)

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

答案 5 :(得分:14)

您还可以使用以下行更改标签显示参数(如fontsize):

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

答案 6 :(得分:14)

对于较小的字体,我使用

ax1.set_xticklabels(xticklabels, fontsize=7)

它有效!

答案 7 :(得分:14)

另一种选择

我有两个并排的地块,想分别调整刻度标签。

上述解决方案已经结束,但它们并没有为我提供帮助。我从这个matplotlib page找到了我的解决方案。

ax.xaxis.set_tick_params(labelsize=20)

这就是诀窍而且直截了当。对于我的用例,右边的情节需要调整。对于我创建新刻度标签后左侧的情节,我能够在与设置标签相同的过程中调整字体。

ax1.set_xticklabels(ax1_x, fontsize=15)
ax1.set_yticklabels(ax1_y, fontsize=15)

因此我用于正确的情节,

ax2.xaxis.set_tick_params(labelsize=24)
ax2.yaxis.set_tick_params(labelsize=24)

一个迷你......我知道......但我希望这有助于某人:)

如果有人知道如何调整数量级标签的字体大小,则获得积分。

enter image description here

答案 8 :(得分:10)

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

答案 9 :(得分:8)

以下对我有用:

ax2.xaxis.set_tick_params(labelsize=7)
ax2.yaxis.set_tick_params(labelsize=7)

上述优点是您无需提供array的{​​{1}},并且可以使用labels上的任何数据。