【问题标题】:Pylab animation multiple figuresPylab动画多图
【发布时间】:2014-02-24 17:52:01
【问题描述】:

我想使用 pylab 动画更新多个图形。我为要显示的每个通道初始化一个新图形,并将交互模式设置为关闭:

    pyplot.ion()
    pyplot.show()

在包含图形的类中有一个环形缓冲区和一个更新数据的方法:

    def append_data(self, data):
        update buffers with data

        ...
        ...

        self.lineb.set_data(self.tbuf, self.bbuf)
        self.ax1.set_xlim( [min(self.tbuf), max(self.tbuf)] )
        self.ax1.set_ylim( [min(self.bbuf), max(self.bbuf)] )

        ...
        ...

        self.fig.show()
        pyplot.draw()

问题:有多个图,只有最后一个正确更新。其他的不刷新。我知道数据已正确添加到每个图形的缓冲区中,所以问题不存在。

【问题讨论】:

  • 避免使用pyplot,除非你真的以交互方式使用它。 fig.canvas.draw() 会对特定人物做同样的事情。
  • 我不确定我是否理解您的建议。你的意思是避免使用pyplotcommand 或模块?你会用什么代替?
  • 看起来你在嵌入,pyplot 的事件循环可能与你的 gui 的事件循环冲突。

标签: python matplotlib non-interactive


【解决方案1】:

我在this article之后找到了解决方案。

我用名字初始化了图:

fig = pyplot.figure(name)

然后我换了几行:

    self.fig.show()
    pyplot.draw()

到:

    pyplot.figure(name)
    pyplot.draw()

显然这可行,但不完全确定原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    相关资源
    最近更新 更多