当前位置: 首页 > 面试题库 >

您可以在matplotlib中绘制实时数据吗?

邵博远
2023-03-14
问题内容

我正在从一个线程中的套接字读取数据,并希望随着新数据的到来绘制和更新绘制。我编写了一个小的原型来模拟事物,但是没有用:

import pylab
import time
import threading
import random

data = []

# This just simulates reading from a socket.
def data_listener():
    while True:
        time.sleep(1)
        data.append(random.random())

if __name__ == '__main__':
    thread = threading.Thread(target=data_listener)
    thread.daemon = True
    thread.start()

    pylab.figure()

    while True:
        time.sleep(1)
        pylab.plot(data)
        pylab.show() # This blocks :(

问题答案:
import matplotlib.pyplot as plt
import time
import threading
import random

data = []

# This just simulates reading from a socket.
def data_listener():
    while True:
        time.sleep(1)
        data.append(random.random())

if __name__ == '__main__':
    thread = threading.Thread(target=data_listener)
    thread.daemon = True
    thread.start()
    #
    # initialize figure
    plt.figure() 
    ln, = plt.plot([])
    plt.ion()
    plt.show()
    while True:
        plt.pause(1)
        ln.set_xdata(range(len(data)))
        ln.set_ydata(data)
        plt.draw()

如果您想走得很快,则应考虑发li。



 类似资料:
  • 问题内容: 我有一个格式为(HH:MM:SS.mmmmmm)的时间戳数组和另一个浮点数数组,每个浮点数对应于timestamp数组中的一个值。 我可以使用Matplotlib在x轴上绘制时间,在y轴上绘制数字吗? 我试图这样做,但是不知何故它只接受浮点数数组。如何获得时间图?我必须以任何方式修改格式吗? 问题答案: 你必须首先将时间戳转换为对象(使用)。然后使用将日期转换为格式。 使用以下方式绘制

  • 问题内容: 我正在尝试使用OpenCV从摄像机实时绘制一些数据。但是,实时绘图(使用matplotlib)似乎不起作用。 我将问题隔离到以下简单示例中: 我希望该示例可以单独绘制1000点。实际发生的情况是,窗口弹出并显示第一个点(表示正确),然后等待循环结束,然后填充图的其余部分。 有什么想法为什么我一次看不到点呢? 问题答案: 这是有问题的代码的工作版本(至少需要从2011-11-14起版本)

  • 我有以下代码: 输出: 还有情节。 但在绘图中使用此代码时,x轴是索引。但我想得到x轴上的日期。 如何使用测试的编号和ARI的平均值绘制日期 我想,我应该把字符串(日期)改成日期,但我不知道怎么做。 最好的

  • 问题内容: 我有一个固定宽度的数据文件,其中包含日期,但是当我尝试绘制数据时,日期无法在x轴上正确显示。 我的档案看起来像 等等 我用 熊猫 读文件 所以我想这里的问题是从熊猫到matplotlib日期时间的转换,如何进行转换? 我也直接尝试了熊猫: 但这失败了 TypeError:空的“ Series”:没有要绘制的数字数据 问题答案: 如果您使用包含列名而不是字符串的列表,则data.set_

  • Matplotlib 支持广泛的文本格式,比如 TTF 页面语言、Unicode 字符等。这是因为 Matplotlib 内置了 matplotlib.font_manager 字体管理器,它是一个实现了跨平台,并符合 W3C 字体查找算法的字体集合。 TTF(TrueType Font) 是苹果公司和微软公司合作开发的页面描述语言,用来描述字符的轮廓,结合了光栅技术和矢量技术的优点。 用户可以对

  • 问题内容: 现在我以下: 1)一个Java接口。 2),它的具体的java类 不 执行上述接口,但 不 包含的方法签名的接口中定义的方法中的每一个匹配。 由于我无法更改第2项的实现,因此我想知道是否可以使接受第1项实例作为参数的方法接受没有类强制转换的第2项。 感觉像Spring中的各种编织/强制/ AOP机制应该可以实现这一点,但是我不知道该怎么做。 有没有办法做到这一点? 问题答案: 您可以强