最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
使用matplotlib动态刷新指定曲线代码实例
时间:2020-04-23 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下使用matplotlib动态刷新指定曲线代码实例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
代码如下:
from matplotlib import pyplot as plt import numpy as np x = np.linspace(1, 100, 20) y = x *2 +3 fig = plt.figure() ax = fig.add_subplot(1,1,1) ax.scatter(x, y) plt.ion() for i in range(10): y = x*i*0.1 + i try: ax.lines.remove(lines[0]) except Exception: pass lines = ax.plot(x ,y) plt.pause(0.1)
补充知识:用Python的matplotlib库动态显示不断增长的数据
""" Created on Mon Dec 07 16:34:10 2015 @author: SuperWang """ import matplotlib.pyplot as plt import numpy as np fig,ax=plt.subplots() fig2,ax2=plt.subplots() y1=[] y2=[] for i in range(50): y1.append(np.sin(i)) y2.append(np.cos(i)) ax.cla() ax.set_title("Loss") ax.set_xlabel("Iteration") ax.set_ylabel("Loss") ax.set_xlim(0,55) ax.set_ylim(-1,1) ax.grid() ax.plot(y1,label='train') ax.plot(y2,label='test') ax.legend(loc='best') ax2.cla() ax2.set_title("Loss") ax2.set_xlabel("Iteration") ax2.set_ylabel("Loss") ax2.set_xlim(0,55) ax2.set_ylim(-1,1) ax2.grid() ax2.plot(y1,label='train') ax2.plot(y2,label='test') ax2.legend(loc='best') plt.pause(1)
要解决的问题如标题所示,原理很简单,就是当数据增长时,不断清空以前的绘画内容,然后把现有的数据重新画出来(数据是胡乱生成的)。
具体过程如下:
fig,ax=plt.subplots() 产生一个figure对象和一个axis对象。figure相当于一个窗口,而axis相当于一个画布。此句也可以用两句生成,即fig=plt.figure(num),括号中的参数是figure的ID,如果只需创建一个figure对象,那么可以省略。然后ax=fig.subplot(1,1,1),subplot()的具体用法可以去google或百度一下。ax.cla()就是在新数据到来时,先把之前的绘制的内容清空,接下来,ax.set_title(“Loss”),ax.set_xlabel(“Iteration”),ax.set_ylabel(“Loss”)都很简单,见名知意。ax.set_xlim(0,55),ax.set_ylim(-1,1)分别用来设置x轴和y轴的两个端点。ax.grid()给画布加上网格。ax.plot(y1,label='train'),ax.plot(y2,label='test')这两句是实际的绘制命令,其中,参数label是为以后生成图例用的。ax2.legend(loc='best')用来生成图例,loc参数代表图例位置location,而value:‘best'是其中的一种选择,除此之外,还有左上角等其他选项。最后,plt.pause(1)是为了显示上更直观,故意每绘制一次,暂停1秒,注意,这里的单位是秒。如果是实际的应用,而数据生成的过程又比较慢,此句完全可以省略。
这段代码中创建了两个窗口,在实验过程中,我发现只能有一个窗口被选中,即用鼠标点击哪个窗口,哪个窗口会动态地显示绘画过程,而另一个保持不动。
绘画过程截图如下:
相关文章
- Golang ProtoBuf的基本语法详解 10-20
- Python识别MySQL中的冗余索引解析 10-20
- Python+Pygame绘制小球代码展示 10-18
- Python中的数据精度问题介绍 10-18
- Python随机值生成的常用方法介绍 10-18
- python3解压缩.gz文件分析 09-27