Сюжет в режиме реального времени с датой - PullRequest
0 голосов
/ 27 апреля 2019

Я пытаюсь построить график в реальном времени для моего датчика температуры Raspberry Pi.Я хотел бы сделать меру каждые, например, 20 минут и вставить данные в график с этим временем внизу.

У меня есть этот код, но time в строковом формате, и matplot не позволит мне вставить его в ylim, потому что он хочет int, что мне делать, пожалуйста?


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 Ответ

1 голос
/ 27 апреля 2019

Быстрый поиск привел меня к этому вопросу, который, я думаю, на самом деле является тем, о чем вы просите:

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

Не смотрите ответ, помеченный как правильный, приведенный нижеявляется лучшим и более эффективным решением.

Используйте datetime вместо time, чтобы проанализировать даты и добавить их в свой список x, как вы делаете.Затем импортируйте matplotlib.dates lib и используйте plt.gca().xaxis.set_major_formatter(), чтобы позволить matplotlib знать правильный формат для этих дат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...