Python/MatPlotLib: как добавить кнопку для отображения данных в реальном времени из последовательного порта
Я учусь строить графики в реальном времени, используя matplotlib
и до сих пор удалось прочитать живые данные из последовательного порта и построить их.
Вот мой код:
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, y, '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')
Я хочу, чтобы две кнопки на живом графике, Start и Stop
Нажатие кнопки " Стоп" остановит построение графика, оставляя пустой график.
Нажатие кнопки " Старт" снова запустит прямую трансляцию.
Я сослался на ссылку< Matplotlib Python: Как добавить кнопку панели>, но не смог правильно использовать ее для добавления в мой код.
Как я могу добавить кнопки к живому сюжету?
Заранее спасибо!