在matplotlib中绘制数据后,调整标记的颜色,大小和类型

时间:2013-02-14 21:12:47

标签: python matplotlib traits

我绘制了一堆散点然后重绘画布:

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更改每个绘制的组件。有什么地方可以找到这些属性吗?感谢。

1 个答案:

答案 0 :(得分:3)

scatter返回一个PathCollection对象,您可以看到该对象具有相对有限的api,用于事后设置。 Collection类系列交换后续更新的能力,以便更有效地绘制。

如果您没有使用散点图分别设置每个点的大小和颜色,那么最好使用

self.display_points, = ax.plot(x, y, marker='o', linestyle='none')

它将为您提供一个Line2D对象,看起来与您的散点图相同。 Line2D具有更灵活的api,其中包括set_markerset_markersize