动态更改matplotlib图的内容

时间:2010-01-12 17:00:29

标签: python matplotlib plot

我刚才用python和matplotlib比较两个函数的输出。结果非常简单,因为使用matplotlib进行绘图非常简单:我只是绘制了两个具有不同标记的数组。一块蛋糕。

现在我发现自己遇到了同样的问题,但现在我有很多曲线要比较。我最初尝试使用不同的颜色和标记绘制所有内容。这并不满足我,因为每条曲线的范围并不完全相同。除此之外,我很快就用尽了不同的颜色和标记(RGBCMYK,之后,自定义颜色与之前的颜色相似)。

我还尝试对每对曲线进行子绘图,获得一个包含许多图的窗口。太拥挤。 我为每个情节尝试了一个窗口,窗户太多了。

所以我只是想知道是否有任何现有的小部件,或者你是否有任何建议(或不同的想法)来实现这一目标:

我希望看到一对曲线,然后使用滑动条,按钮,鼠标滚动或任何其他小部件或事件轻松选择下一条曲线。通过改变曲线,前一个应该消失,图例也应该改变它的轴。

3 个答案:

答案 0 :(得分:8)

我设法使用鼠标点击的事件处理程序。我会更改它以获得更有用的东西,但无论如何我都会发布我的解决方案。

import matplotlib.pyplot as plt

figure = plt.figure()
# plotting
plt.plot([1,2,3],[10,20,30],'bo-')
plt.grid()
plt.legend()

def on_press(event):
    print 'you pressed', event.button, event.xdata, event.ydata
    event.canvas.figure.clear()
    # select new curves to plot, in this example [1,2,3] [0,0,0]
    event.canvas.figure.gca().plot([1,2,3],[0,0,0], 'ro-')
    event.canvas.figure.gca().grid()
    event.canvas.figure.gca().legend()
    event.canvas.draw()


figure.canvas.mpl_connect('button_press_event', on_press)

答案 1 :(得分:2)

听起来你想在应用程序中嵌入matplotlib。有一些可用的资源:

答案 2 :(得分:2)

我真的很喜欢使用特质。如果您按照教程Writing a graphical application for scientific programming 进行操作,您应该可以按照自己的意愿行事。本教程介绍了如何使用图形用户界面与matplotlib图形进行交互。