使用python matplotlib更改一个轴的每个tick的fontsize

时间:2014-07-24 17:24:51

标签: python python-2.7 matplotlib font-size ticker

我正在尝试更改y轴的每个刻度尺寸 这些滴答是单词,如果行的总和更大,我希望这些单词的大小增加,否则减少。我说的是行,因为我的图表代表了一个矩阵。

例如,我们可以想象“windows”这一行的总和将具有比“police”更高的值。如何在不改变所有其他内容的情况下增加勾选“窗口”的字体大小?

我在Python 2.7.6上使用matplotlib 1.3.1

但是,如果需要,我已准备好使用任何其他工具箱。

1 个答案:

答案 0 :(得分:0)

您可以遍历刻度线(plt.gca().xaxis.get_major_ticks())并设置如下属性:

import matplotlib.pyplot as plt

MP_TICKSIZE = [10.0, 15.0, 20.0]

plt.subplot(111)

x = [1.0, 2.0, 3.0]
y = [1.0, 2.0, 3.0]

plt.plot(x,y)

plt.gca().set_xticks([t for t in x])

count = 0
for tick in plt.gca().xaxis.get_major_ticks():
    tick.label1.set_fontsize(MP_TICKSIZE[count])
    count += 1

plt.show()  

这将产生这个情节:

enter image description here

有两点需要注意:

  1. 您可以通过循环主要刻度来设置单个刻度标签大小(这是for循环所做的。如果您有特定的轴句柄,请使用它而不是gca()。< / LI>
  2. 您需要知道此示例的刻度数(否则,您的索引迟早会超出界限)
  3. 如果您不想提前设置刻度,可以通过len(plt.gca().xaxis.get_major_ticks())计算刻度数。根据该整数,您可以设置数组MP_TICKSIZE,例如:

    import numpy as np
    
    MP_TICKSIZE = np.random.rand(len(plt.gca().xaxis.get_major_ticks())) * 30.0
    

    使用此代替plt.gca().set_xticks([t for t in x])来查看差异。