S K*_*ulk 10 python plot matplotlib
我有一个python脚本,它读入一个数据文件,并使用matplotlib库显示一个带有四个图的图形.数据文件每隔几秒更新一次,因为它是同时运行的不同软件的输出文件.我希望matplotlib图中的四个图表每隔20秒使用更新的数据文件刷新一次.我实现这个的方式如下:
import pylab as pl
import time
pl.ion()
fig = pl.figure()
while True:
f = open('data.out', 'rb')
#code to parse data and plot four charts
ax = fig.add_subplot(2,2,1)
#...
ax = fig.add_subplot(2,2,4)
#...
pl.draw()
time.sleep(20)
Run Code Online (Sandbox Code Playgroud)
这有效,但是我失去了缩放和平移按钮的功能,如果调用了pl.show(),它通常会起作用.这不是最佳选择.但是,如果用pl.show()替换pl.draw(),则脚本不再更新绘图.有没有办法动态更新绘图而不会完全失去缩放/平移功能?
您的代码有点太模糊,不知道发生了什么。
我可以提供这个:如果您创建一次子图,保存所有轴对象然后调用 show(),您应该保留正常功能。
对这些子图的后续更改可以这样完成:
#inside while loop
for i in #subplotlist
ax[i].clear() #ax[i] is the axis object of the i'th subplot
ax[i].plot(#plotstuff)
ax[i].draw()
Run Code Online (Sandbox Code Playgroud)
如果您愿意,可以手动添加用于缩放和平移的工具栏。
| 归档时间: |
|
| 查看次数: |
5692 次 |
| 最近记录: |