Python/MatPlotLib:无法在 y 轴上打印正确的数据
Posted
技术标签:
【中文标题】Python/MatPlotLib:无法在 y 轴上打印正确的数据【英文标题】:Python/MatPlotLib: Unable to print correct data on y axis 【发布时间】:2018-12-06 17:17:10 【问题描述】:我正在学习使用 matplotlib 从串口绘制实时数据。
我能够正确地将数据发送到我的串行端口。
但是,我在串行端口上发送的值在我的图表中未正确绘制。
cnt(x 轴)绘制正确,但 温度(y 轴)绘制的值不正确。
以下是我的(破旧的)python 代码:-
import serial
import numpy
import matplotlib.pyplot as plt
from drawnow import *
import binascii
import serial
import time
x = []
y = []
plt.ion()
cnt=0
z1baudrate = 9600
z1port = 'COM6'
z1serial = serial.Serial(port=z1port, baudrate=z1baudrate)
z1serial.timeout = 1
print (z1serial.is_open)
def makeFig():
plt.ylim(0,150)
plt.title('Live Data')
plt.grid(True)
plt.ylabel('Temperature')
plt.plot(x, 'ro-', label='F')
plt.legend(loc='upper left')
if z1serial.is_open:
while True:
size = z1serial.inWaiting()
if size:
data = z1serial.read(1)
data = (ord(data))
print (data)
if data:
cnt = cnt+1
x.append(cnt)
y.append(data)
drawnow(makeFig)
plt.pause(.000001)
cnt=cnt+1
if(cnt>50):
x.pop(0)
y.pop(0)
z1serial.flushInput()
z1serial.flushOutput()
else:
print ('no data')
time.sleep(1)
else:
print ('z1serial not open')
如何正确绘制串行数据(温度)与计数(cnt)图?
谢谢!
【问题讨论】:
【参考方案1】:plt.plot(x, y,'ro-', label='F')
你好像忘了把y放在情节里
【讨论】:
做到了!非常感谢。以上是关于Python/MatPlotLib:无法在 y 轴上打印正确的数据的主要内容,如果未能解决你的问题,请参考以下文章
Python、Matplotlib、subplot:如何设置轴范围?
Python matplotlib之函数图像绘制、线条rc参数设置
Python。 matplotlib。根据其他列的值(平行线)绘制值
如何使用 Python matplotlib 绘制具有 4 个象限的图形或绘图?