Python - matplotlib:如何更改 RectangleSelector 属性

Python - matplotlib: how to change RectangleSelector properties

是否可以在创建 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()

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

有线索吗?

谢谢

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

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

或者(归功于 JohanC):

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

再次点击矩形后,会改变颜色