python中plot实现即时数据动态显示方法_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实现即时数据动态显示方法_python中plot实现即时数据动态显示方法)