這篇文章主要介紹了怎么用Python顯示數據圖表并固定時間長度的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇怎么用Python顯示數據圖表并固定時間長度文章都會有所收獲,下面我們一起來看看吧。
前言:
python利用matplotlib庫中的plt.ion()函數實現即時數據動態顯示:
代碼示例:
# -*- coding: utf-8 -*- import matplotlib.pyplot as plt import numpy as np import time from math import * plt.ion() #開啟interactive mode 成功的關鍵函數 plt.figure(1) t = [0] t_now = 0 m = [sin(t_now)] for i in range(100): plt.clf() #清空畫布上的所有內容 t_now = i*0.3 t.append(t_now)#模擬數據增量流入,保存歷史數據 m.append(sin(t_now))#模擬數據增量流入,保存歷史數據 plt.plot(t,m,'-r') plt.draw()#注意此函數需要調用 plt.pause(0.1)

此時間軸在不斷變長。
使用隊列 deque,保持數據是定長的,就可以顯示固定長度時間軸的動態顯示圖,
代碼示例:
import matplotlib.pyplot as plt
from collections import deque
from math import *
plt.ion()#啟動實時
pData = deque(maxlen=30)
for i in range(30):
pData.append(0)
fig = plt.figure()
t = deque(maxlen=30)
for i in range(30):
t.append(0)
plt.title('Real-time Potentiometer reading')
(l1,)= plt.plot(pData)
plt.ylim([0, 1])
for i in range(2000):
plt.pause(0.1)#暫停的時間
t.append(i)
pData.append(sin(i*0.3))
print(pData)
plt.plot(t,pData,'-r')
plt.draw()Spyder 運行結果(貌似在pycharm 有問題)
s

偶然間看到:
import numpy as np
import matplotlib.pyplot as plt
from IPython import display
import math
import time
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ax.set_xlabel('Time')
ax.set_ylabel('cos(t)')
ax.set_title('')
line = None
plt.grid(True) #添加網格
plt.ion() #interactive mode on
obsX = []
obsY = []
t0 = time.time()
while True:
t = time.time()-t0
obsX.append(t)
obsY.append(math.cos(2*math.pi*1*t))
if line is None:
line = ax.plot(obsX,obsY,'-g',marker='*')[0]
line.set_xdata(obsX)
line.set_ydata(obsY)
ax.set_xlim([t-10,t+1])
ax.set_ylim([-1,1])
plt.pause(0.01)
關于“怎么用Python顯示數據圖表并固定時間長度”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“怎么用Python顯示數據圖表并固定時間長度”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。