【问题标题】:Changing alpha value of ticklabels without specifying text在不指定文本的情况下更改刻度标签的 alpha 值
【发布时间】:2018-03-05 12:14:15
【问题描述】:

Matplotlib 允许更改几乎任何东西的 alpha 值,但它如何用于刻度标签? 如果我有文字,那就简单了:

ax.set_xticklabel(labels, alpha=alpha)

如果我没有文本,情况就不同了,因为缺少标签,以下会引发 TypeError。

ax.set_xticklabel(alpha=alpha)

因此,我的下一个想法是获取自动生成的刻度标签并使用它们来完成这项工作:

labels = [label.get_text() for label in ax.get_xticklabels()]
ax.set_xticklabels(labels, alpha=alpha

这里的问题是,由于 matplotlib 的动态特性,标签是空的(参见 here)。

那么,有没有一种简单的方法可以在事先不知道文本的情况下更改我的刻度标签的 alpha 值?

【问题讨论】:

    标签: python matplotlib label alpha


    【解决方案1】:

    如果您想更改它们的颜色,可能不希望自己设置刻度标签。原因是通过ax.set_ticklabels 设置标签会将格式化程序更改为FixedFormatter;使用这个会失去自动格式化行为。

    改为更改稍后构成刻度标签的文本对象的 alpha。为此plt.setp 是一个有用的功能。

    plt.setp(ax.get_xticklabels(), alpha=0.3)
    

    同样可以通过

    for t in ax.get_xticklabels():
        t.set_alpha(0.3)
    

    【讨论】:

      猜你喜欢
      • 2013-03-25
      • 1970-01-01
      • 2019-12-16
      • 2020-08-03
      • 2020-07-21
      • 2012-06-29
      相关资源
      最近更新 更多