首页 > 解决方案 > 如何在单个图表中绘制实时图表?

问题描述

我正在尝试使用 python 显示实时图表(动态绘图)。但是,结果并没有显示在单个图表中,而是每秒生成一个新的图表,这并不意味着更新实时图表。我该如何解决?我的代码有问题吗?

import serial
import time
import matplotlib.pyplot as plt
from drawnow import drawnow

DataList = []
pcs = serial.Serial('COM4', baudrate = 9600, timeout = 1)
time.sleep(3)
plt.ion()

def makeFig():
    plt.plot(DataList, 'rd-')

def getValues():
    pcs.write(b"MEASure:VOLTage:DC?\n")
    pcsData = pcs.readline().decode('ascii').split('\n\r')
    DataList.append(float(pcsData[0]))


while(1):
    getValues()
    drawnow(makeFig)
    plt.pause(.000001)

结果快照: 在此处输入图像描述

标签: pythonplot

解决方案


drawnow这种方式调用被设计为一次性抽签。查看是否drawnow(caller, show_once=True)可以解决您的问题,否则您可能需要查看其他地方 - 例如使用替代绘图功能:

如何使用 matplotlib 在 while 循环中实时绘图?


推荐阅读