python - matplotlib 图打开但 matplotlib 窗口 "not responding"

标签 python matplotlib serial-port

在 Windows 中,我尝试运行这段代码。串行工作正常,罗盘值转换为 float ma​​tplotlib 图已打开,但 matplotlib 窗口“无响应” 未绘制任何内容。

import serial
import numpy
import matplotlib.pyplot as plt
ser = serial.Serial('COM8',9600,timeout=2)

ciz,=plt.plot([],[])

def update_ciz(ciz,newdata):
     ciz.set_xdata(numpy.append(ciz.get_xdata(),newdata))
     ciz.set_ydata(numpy.append(ciz.get_ydata(),newdata))
     plt.draw()
while (True):
     line = ser.readline()
     k=line.split(":")
     temperature=k[0]
     pressure= k[1]
     attitude=k[2]
     realAttitude=k[3]
     compass=float(k[4])
     gx=k[5]
     gy=k[6]
     gz=k[7]
     ax=k[8]
     ay=k[9]
     az=k[10]
     acond=k[11]
     update_ciz(ciz,compass)

最佳答案

在 matplotlib 中,您需要使用“plt.show()”来显示绘图。由于您正在使用“plt.draw()”更新绘图,您可能还想使用交互模式。

尝试在您的“ciz,=plt.plot([],[])”命令之后包含这个:

plt.ion()
plt.show()

关于python - matplotlib 图打开但 matplotlib 窗口 "not responding",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18639597/

相关文章:

Python:定义多个相同类型的变量?

python - Django:在 clean() 方法中获取以前的值

python - MPI Newbie - 关于 'mpirun' 工作原理和进程管理的一些问题

python - 栅格化 matplotlib 轴内容(但不是框架、标签)

PHP fsockopen() 失败未打开端口但 telnet 工作

java - 通过串口从 C# 发送数字到 Java

javascript - Node WebKit 和 SerialPort

python - 如何从 Python 脚本捕获 Python 解释器和/或 CMD.EXE 输出?

python - 在matplotlib中自动缩放y时设置x轴标签范围

python - 如何用现有的 xyz 数据制作矩阵