【问题标题】:change fontsize of each tick of one axis with python matplotlib使用 python matplotlib 更改一个轴的每个刻度的字体大小
【发布时间】:2014-09-16 09:21:10
【问题描述】:

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

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

我在 Python 2.7.6 上使用 matplotlib 1.3.1

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

【问题讨论】:

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


    【解决方案1】:

    您可以遍历刻度 (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()  
    

    这将导致这个情节:

    有两点需要注意:

    1. 您可以通过循环主要刻度来设置单个刻度标签的大小(这是 for 循环所做的。如果您有特定的轴句柄,请使用它而不是 gca()
    2. 您需要知道此示例的刻度数(否则,您的索引迟早会超出范围)

    如果你不想提前设置你的tick,你可以通过len(plt.gca().xaxis.get_major_ticks())算出tick的数量。基于该整数,您可以设置数组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])来看看区别。

    【讨论】:

    • 抱歉这么晚才回复。但我使用的是 IPython 并面临很多问题。现在一切正常。非常感谢您的帮助...
    猜你喜欢
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    相关资源
    最近更新 更多