我正在尝试为树莓派pi温度传感器制作实时绘图图。我想每20分钟进行一次测量,然后将数据插入到图形中,而此时则在底部。
我有这段代码,但是time
是字符串格式,matplot不允许我将其插入ylim
,因为它想要int
,我该怎么办?< / p>
import matplotlib.pyplot as plt
import RPi.GPIO as GPIO
import dht11
import time
from drawnow import drawnow
# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
# read data using pin 4
instance = dht11.DHT11(pin=4)
def make_fig():
plt.plot(x, y)
plt.ion()
fig = plt.figure()
x = list()
y = list()
while True:
result = instance.read()
tem = time.strftime("%H:%M:%S", time.localtime(time.time()))
x.append(tem)
y.append(result.temperature)
drawnow(make_fig)
time.sleep(1000)
答案 0 :(得分:1)
快速搜索将我带到了这个问题,我认为这实际上是您要的问题:
https://stackoverflow.com/a/9627970/8275139
不要将答案标记为正确,下面的答案是一种更好,更有效的解决方案。
使用datetime
而不是time
来解析日期并将其添加到x列表中。然后导入matplotlib.dates
lib并使用plt.gca().xaxis.set_major_formatter()
来让matplotlib知道该日期的正确格式。