无法在Matplotlib中显示条形图的动画
问题描述:
我有一个不断更新单个值的文本文件。我试图用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()
答
刚把depth_1改变=行[3]这depth_1 = INT(线[3])
您列出太多这个问题存在问题。如果您看不到条形图,则难以对其进行设置!请(1)提供一个包含数据的最小示例,并且(2)一次询问单个重点问题。 –
Reblochon的好处。复杂性经常会杀死你,更好地分离问题。为什么不把文件读出来,只是让'update'函数产生一个随机值。 – roadrunner66
@ReblochonMasque为了简单的问题,我剪掉了很多代码。这应该是每秒更新一次条形图。深度是0到50之间的整数。数据是5行(每行保存一个整数),每秒更新一次。第3行是深度,显示为depth_1。我需要的只是每秒钟更新图表。 – 222