在Matlab使用Plot函數實作資料動态顯示方法總結中介紹了兩種實作即時資料動态顯示的方法。考慮到使用python的人群日益增多,再加上本人最近想使用python動态顯示即時的資料,網上方法很少,固總結于此。
示例代碼1
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(2000):
t_now = i*0.1
t.append(t_now)#模拟資料增量流入
m.append(sin(t_now))#模拟資料增量流入
plt.plot(t,m,'-r')
plt.draw()#注意此函數需要調用
time.sleep(0.01)
示例代碼2
上面的方式,可以在跳出的畫圖面闆内動态顯示,但是如果想在jupyter notebook中直接動态顯示,上面的方法将無效。是以,補上在jupyter notebook中可行的動态顯示示例程式。以供舉一反三之用。
這裡寫代碼片
import math
import random
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline
# set up matplotlib
is_ipython = 'inline' in matplotlib.get_backend()
if is_ipython:
from IPython import display
plt.ion()
def plot_durations(y):
plt.figure(2)
plt.clf()
plt.subplot(211)
plt.plot(y[:,0])
plt.subplot(212)
plt.plot(y[:,1])
plt.pause(0.001) # pause a bit so that plots are updated
if is_ipython:
display.clear_output(wait=True)
display.display(plt.gcf())
x = np.linspace(-10,10,500)
y = []
for i in range(len(x)):
y1 = np.cos(i/(3*3.14))
y2 = np.sin(i/(3*3.14))
y.append(np.array([y1,y2]))
plot_durations(np.array(y))
以上就是本文的全部内容,希望對大家的學習有所幫助,也希望大家多多支援我們。
本文标題: python中plot實作即時資料動态顯示方法
本文位址: http://www.cppcns.com/jiaoben/python/230896.html