【问题标题】:How can I create two new figures in matplotlib using python and then update them in subsequent code?如何使用 python 在 matplotlib 中创建两个新图形,然后在后续代码中更新它们?
【发布时间】:2016-01-09 14:36:48
【问题描述】:

我有一些 python 模拟代码,运行一两分钟,并实时显示模拟的输出。

我想在两个不同的图形窗口上显示结果。因为我使用的是面向对象的设计,所以使用figure(x) 命令在图形之间切换有点困难,所以我想将每个图形的引用保存到每个变量并使用它返回它们。我的设置如下:

import pylab as p 

f0 = p.figure() 
f1 = p.figure() 
ax0 = f0.add_subplot(111) 
ax0.plot(range(0,50))
ax1 = f1.add_subplot(111) 
ax1.plot(range(0,20))
ax1.text(0,1,"This is updatable",weight='bold',fontsize=16)
ax0.text(0,1,"This one, drawn first, is not.",weight='bold',fontsize=16)
p.pause(5)

问题是,一旦我创建并访问了第二个图,第一个图就无法再访问了。

我正在使用 matplotlib 并使用带有 MacOSX 交互式后端的 Pycharm CE 运行 Python 2.7.6。

有人知道怎么设置吗?我是否为此类问题使用了错误的绘图包?

更新:我发现如果我关闭第一个窗口只是使用鼠标访问窗口控件,那么第二个窗口将被更新。不过,这并不能解决我的问题。

【问题讨论】:

  • 尝试在末尾添加“p.show()”
  • 不走运@problemMaker,虽然我发现无论是否添加了 p.show() ,如果我关闭第一个窗口只是使用鼠标访问窗口控件,那么第二个窗口会更新。

标签: oop


【解决方案1】:

这是一种解决方法-y,但我发现一个 solution 是使用以下命令将我想要更新的任何数字设为当前数字:

p.figure(f0.number)

我不知道我可以像这样访问数字的编号,但这似乎解决了我的问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 2021-06-22
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    相关资源
    最近更新 更多