2016-04-25 68 views
0

我有一个不断更新单个值的文本文件。我试图用matplotlib的动画显示这个值,但是我有很多问题。例如,我想显示一个值在文本文件上每秒变化的值(取值范围从0到150),我希望条形图的高度随着该值增加和减少。无法在Matplotlib中显示条形图的动画

我想用水平图做同样的事情。我也想显示一个点在圆周上移动以获得不同的值(0到360之间)。

我试过很多东西,但它经常破坏代码或matplotlib冻结。我一直在尝试使用matplotlib的动画。

任何帮助,将不胜感激。 当我运行代码,我没有看到条形图

import matplotlib.pyplot as plt 
import mpl_toolkits.mplot3d.axes3d as p3 
import matplotlib.animation as animation 
import random 

mf = r"data.txt" 

fig = plt.figure() 
ax = p3.Axes3D(fig) 
xpos = 0 
ypos = 0 
zpos = 0 
dx = 1 
dy = 1 





def update_bars(): 
    mmf = open(mf) 
    lines = mmf.readlines() 
    depth_1 = lines[3] 
    dz = depth_1 


    bars = ax.bar3d(xpos, ypos, zpos, dx, dy, dz, color= 'b') 
    return bars 

## add bars 


ax.set_title('Depth') 

line_ani = animation.FuncAnimation(fig, update_bars, 500, interval=100) 
plt.show() 
+1

您列出太多这个问题存在问题。如果您看不到条形图,则难以对其进行设置!请(1)提供一个包含数据的最小示例,并且(2)一次询问单个重点问题。 –

+0

Reblochon的好处。复杂性经常会杀死你,更好地分离问题。为什么不把文件读出来,只是让'update'函数产生一个随机值。 – roadrunner66

+0

@ReblochonMasque为了简单的问题,我剪掉了很多代码。这应该是每秒更新一次条形图。深度是0到50之间的整数。数据是5行(每行保存一个整数),每秒更新一次。第3行是深度,显示为depth_1。我需要的只是每秒钟更新图表。 – 222

回答

0

刚把depth_1改变=行[3]这depth_1 = INT(线[3])