Несколько графиков на одном графике - Matplotlib - PullRequest
0 голосов
/ 23 января 2020

Я строю данные в режиме реального времени, используя проанализированные данные из файла, который многократно открывается. Я получаю и строю два разных значения на одном графике. Ось Y масштабируется вверх и вниз в соответствии со значениями каждого. Значение «snr» (зеленый) отображается нормально, но значение «data_rate» (красный) выглядит как stati c. Смотрите скриншот. chart

import matplotlib.pyplot as plt
import csv
import datetime
from matplotlib.animation import FuncAnimation
import numpy as np


x = []
y = []
z = []

rssi_val = []

def animate(i):
    with open('stats.txt', 'r') as searchfile:
        time = (searchfile.read(8))
        for line in searchfile:
            if 'agrCtlRSSI:' in line:
                rssi_val = line[16:20]
                rssi_val=int(rssi_val)
            if 'agrCtlNoise:' in line:
                noise_val = (line[16:20])
                noise_val=int(noise_val)
            if 'maxRate:' in line:
                data_rate = (line[16:20])
                data_rate=int(data_rate)


    snr = ((noise_val - rssi_val) * -1)
    #begin test
    y.append(snr)
    x.append(time)
    z.append(data_rate)
    #end test

#begin test
    plt.cla()

    #Verify values are not empty
    print("SNR = ", snr)
    print("DR = ", data_rate)

    plt.plot(snr,label='Signal')
    plt.plot(data_rate,label='Data Rate')

    plt.legend(loc='upper right')

    plt.plot(x,y,z)



    ax=plt.gca()
    ax.tick_params('x',labelrotation=60)
#end test

ani = FuncAnimation(plt.gcf(), animate, interval=1000)

plt.show()

1 Ответ

0 голосов
/ 23 января 2020

Самый простой способ - вызвать функцию plot дважды.

plt.plot(x,y)
plt.plot(x,z)

См. "Создание нескольких наборов данных" здесь , чтобы получить дополнительные параметры.

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