根据此链接的说明,我可以使用以下方法提取xticks标签和位置:
import matplotlib.pyplot as plt
plt.scatter(x_data, y_data)
locs, labels=plt.xticks()
新的变量
labels
是一个matplotlib.cbook.silent_list
,它不像普通列表一样运作。是否有方法可以访问和修改labels
元素的任何属性值?具体来说,我想知道是否可以选择标签的子集(即切片无声列表)并修改该子集的特定属性。
以下是一个玩具示例:
import numpy as np
import matplotlib.pyplot as plt
x=np.array([1,2,3,4,5,6,7,8])
y=np.random.normal(0, 1, (8, 1))
plt.scatter(x, y)
locs, labels=plt.xticks()
作为一个例子,假设我想将所有`labels`的标签颜色更改为红色,除了第一个和最后一个元素。如果我打开变量中的一个元素,我会看到有一个名为 `_color` 的属性,其值为 `k`,我想将其更改为 `r`: 我尝试进行切片:
labels[1:-1]
但它返回:
Out[]: [Text(2,0,'2'), Text(4,0,'4'), Text(6,0,'6'), Text(8,0,'8')]
而这就是我想到的最远的地方。 我无法找到一种方法来访问属性并更改其值。
NB: 我正在寻找一种通用的方法来访问这些属性并更改它们的值,我不关心特定地改变标签的颜色。那只是一个例子。
fig.canvas.draw()
,然后再使用get_text()
。 - Sheldore