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)

201806221550197.gif

示例代码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))

201806221550208.gif

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值