我绘制了一堆散点然后重绘画布:
self.display_points = ax.scatter(x,y)
wx.CallAfter(self.display.canvas.draw)
我有一个包含颜色的对象。如果用户从GUI更改了此项,我希望能够更改点的颜色,而无需重新绘制数据。
def _color_changed(self):
if hasattr(self, '_display_points'):
self._display_points.set_facecolors(self.color)
wx.CallAfter(self.display.canvas.draw)
如何根据标记的大小和标记的类型来完成...即。 X
应该_display_points.set_X
更改每个绘制的组件。有什么地方可以找到这些属性吗?感谢。
答案 0 :(得分:3)
scatter
返回一个PathCollection
对象,您可以看到该对象具有相对有限的api,用于事后设置。 Collection
类系列交换后续更新的能力,以便更有效地绘制。
如果您没有使用散点图分别设置每个点的大小和颜色,那么最好使用
self.display_points, = ax.plot(x, y, marker='o', linestyle='none')
它将为您提供一个Line2D
对象,看起来与您的散点图相同。 Line2D
具有更灵活的api,其中包括set_marker
和set_markersize
。