Python - matplotlib:如何更改 RectangleSelector 属性

Posted

技术标签:

【中文标题】Python - matplotlib:如何更改 RectangleSelector 属性【英文标题】:Python - matplotlib: how to change RectangleSelector properties 【发布时间】:2021-06-03 03:27:45 【问题描述】:

是否可以在创建 RectangleSelector 后更改其属性?

假设我用以下矩形创建了一个图形:

from matplotlib.widgets import RectangleSelector
import matplotlib.pyplot as plt

def on_click(eclick, erelease):
    pass

fig, current_ax = plt.subplots()
RS = RectangleSelector(current_ax, on_click, drawtype='box', 
                        useblit=True, button=[1, 3], interactive=True,
                        minspanx=1, minspany=1, spancoords='pixels',
                        rectprops=dict(linestyle='-', color='g', 
                                       fill=True, alpha=1))
plt.show()

如果我想改变矩形颜色怎么办?

我愿意:

RS.rectprops['color'] = 'r'
RS.canvas.draw()
fig.canvas.draw()

但这不会影响矩形的颜色。

有什么线索吗?

谢谢

【问题讨论】:

RS.artists[0].set_facecolor('r') 可以工作 谢谢。您的评论和接受的答案都可以正常工作! 【参考方案1】:

如果你想更新你在图上绘制的矩形补丁,而不是小部件,你可以使用:

current_ax.patches[0].set_facecolor('r')

或者(感谢 JohanC):

RS.artists[0].set_facecolor('r')

再次点击矩形后会变色

【讨论】:

以上是关于Python - matplotlib:如何更改 RectangleSelector 属性的主要内容,如果未能解决你的问题,请参考以下文章

如何在 matplotlib / Python 中更改后端

如何在 python 中更改 matplotlib ax.text 中的小数位? [复制]

如何使用 matplotlib 更改 y 轴的比例? [复制]

如何在数据文件更改时动态更新我的 matplotlib 图形?

matplotlib 不会绘制 python3

python Matplotlib;更改刻度定位器