簡體   English   中英

同一圖表上的多個圖 - Matplotlib

[英]Multiple plots on same chart - Matplotlib

我正在使用重復打開的文件中的解析數據繪制實時數據。 我在同一張圖表上推導和繪制兩個不同的值。 Y 軸根據每個值向上和向下縮放。 “snr”(綠色)值繪制得很好,但“data_rate”(紅色)值似乎是靜態的。 見截圖。 圖表

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()

最簡單的方法是調用 plot 兩次。

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

有關更多選項,請參閱 此處的“繪制多組數據”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM