【问题标题】:Interactive mode in matplotlibmatplotlib 中的交互模式
【发布时间】:2010-12-28 18:19:42
【问题描述】:

我想根据从套接字连接接收到的 y 轴数据动态更新散点图。我在交互模式下使用 python matplot lib 来执行此操作,但是在动态更新期间,如果我将窗口移动到不同的位置或最小化窗口,那么绘图更新会突然停止。如何做到这一点?

我附上了此处使用的示例动态更新代码,此处也出现了同样的问题。

import matplotlib.pyplot as plt
import random
import time
items = [25.5,26.7,23.4,22.5,20,13.4,15.6,-12,-16,20]
x = [1,2,3,4,5,6,7,8,9,10]

plt.ion() #  Interactive on

for i in range(1,100):
    plt.title('graph plotting')
    plt.ylabel('temperature') 
    plt.xlabel('time')
    random.shuffle(items)
    plt.plot(x,items,'ob-')
    plt.axis([0, 10, -40, 40])
    plt.draw()
    #time.sleep(2)
    plt.clf()
    plt.close()

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    This page 包含几个使用 matplotlib 和 wxPython 进行动态绘图的示例。而here 是一个带有 PyQt 的版本。

    【讨论】:

      【解决方案2】:

      为此,您需要有一个用于事件处理的主循环,以及您自己的事件处理程序,以便在调整窗口大小或刷新时重绘绘图。

      您会在网络上或教程中找到很多这方面的示例。

      我认为最好使用 UI 工具包(例如 wxPython)来处理,而不是使用 matplotlib 交互模式。我过去有a similar question 并得到了一些很好的答案。

      【讨论】:

      • 感谢您的回答,我搜索了事件处理示例但找不到它(我是 python 新手),请您给我发送至少一个此类示例的链接。
      • @Sharath:你会在我链接的答案中找到链接。
      • @Ber:我指的是 matplot 示例中的事件处理,而不是 wxPython,比如我得到的窗口最小化、移动到不同位置等事件是什么。提前致谢
      • @Sharait:对不起,我帮不了你,我只使用 matplotlib 和 wxPython,而不是单独使用。
      猜你喜欢
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      • 1970-01-01
      • 2019-05-30
      • 2021-01-31
      • 2017-02-28
      相关资源
      最近更新 更多