我试图在matplotlib中设置热图的动画,这在几个小时内第一次起作用,但图表非常小,如下所示。
我使用的代码如下:
import numpy as np
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import xarray
Writer = animation.writers['ffmpeg']
writer = Writer(fps=15, metadata=dict(artist='Me'), bitrate=1800)
x = avar.values # Formatted as follows: [-32,-33,-34,-35,-36...]
y = avar.values # Formatted as follows: [150.2, 151.2, 153.2...]
z = np.array(a[var].values) # [[[24,22,18,23,24,24,25]
# [18,25,23,22,21,19,26]
# ...
# [12,28,19,22,25,26,19]]
# ...
# [[8,4,16,12,22,24,23,8]
# ...
# [12,28,14,7,8,13,6,12]]]
fig = plt.figure()
ax = fig.add_subplot(len(x),len(y),1)
def plot(i):
data = z[i]
heatmap = ax.pcolor(x, y, data)
ani = animation.FuncAnimation(fig, plot, interval=1, frames=20)
ani.save('im.mp4', writer=writer)
我还应该提到尝试调用plt.subplots(x,y)导致控制台冻结的原因,5分钟后它仍然没有进展。
这条线ax = fig.add_subplot(len(x),len(y),1)应该是ax = fig.add_subplot(111)。此更改后代码正常工作。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。