Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Matplotlib热图动画非常小_Python_Matplotlib_Heatmap - Fatal编程技术网

Python Matplotlib热图动画非常小

Python Matplotlib热图动画非常小,python,matplotlib,heatmap,Python,Matplotlib,Heatmap,我正在尝试在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'] wri

我正在尝试在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 = a[var]['lat'].values # Formatted as follows: [-32,-33,-34,-35,-36...]
y = a[var]['lon'].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。子窗口(x,y)
会导致控制台冻结,5分钟后仍然没有进展


如果任何人有想法或建议,他们将不胜感激。

ax=fig.add\u子图(len(x),len(y),1)
应该是
ax=fig.add\u子图(111)
。代码在此更改后工作。

显然,您正在创建
len(x)*len(y)
条目的子批次网格,并且只填充其中的第一个条目。这样做的目的是什么?您想在屏幕上逐个显示多个子绘图吗?我建议您将行更改为
ax=fig.add_子图(111)
,并报告缺少的内容。是的,这就是我做错的地方。谢谢,现在可以用了