实时绘制日期

时间:2019-04-27 08:41:13

标签: python python-3.x matplotlib time

我正在尝试为树莓派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)


1 个答案:

答案 0 :(得分:1)

快速搜索将我带到了这个问题,我认为这实际上是您要的问题:

https://stackoverflow.com/a/9627970/8275139

不要将答案标记为正确,下面的答案是一种更好,更有效的解决方案。

使用datetime而不是time来解析日期并将其添加到x列表中。然后导入matplotlib.dates lib并使用plt.gca().xaxis.set_major_formatter()来让matplotlib知道该日期的正确格式。