在不指定文本的情况下更改刻度标签的 alpha 值
Changing alpha value of ticklabels without specifying text
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?
如果您想更改它们的颜色,可能不希望自己设置刻度标签。原因是通过 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)
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?
如果您想更改它们的颜色,可能不希望自己设置刻度标签。原因是通过 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)