python中plot实现即时数据动态显示方法

在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实现即时数据动态显示方法 的全部内容, 来源链接: utcz.com/z/333140.html

回到顶部