Python / MatPlotLib: как добавить кнопку для отображения данных в реальном времени из последовательного порта - PullRequest
0 голосов
/ 12 декабря 2018

Я учусь строить графики в реальном времени, используя 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')

Я хочу две кнопки на графике в реальном времени, Пуск и Стоп

Нажатие Стоп Кнопка остановит прямое построение, оставляя пустой график.

Нажатие кнопки Старт снова запустит прямое построение.

Я ссылался на ссылку <<a href="https://stackoverflow.com/questions/34660617/matplotlib-python-how-to-add-panel-button"> Matplotlib Python: как добавить кнопку панели >, но не смог правильно использовать ее для добавления в свой код.

Как добавитькнопки для живого сюжета?

Заранее спасибо!

...