gpt4 book ai didi

python - 如何为 seaborn 的热图或相关矩阵制作动画?

转载 作者:太空狗 更新时间:2023-10-29 21:08:25 25 4
gpt4 key购买 nike

我对 python 比较陌生(来自 Matlab)。作为一个项目,我正在尝试创建一个相关矩阵随时间变化的动画图。为了使情节好看,我正在尝试 seaborn。我努力完成动画(Mac 上的 Matplotlib 后端有问题),但现在可以使用来自网络的这段代码制作非常基本的动画:

import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation

nx = 50
ny = 50

fig = plt.figure()
data = np.random.rand(nx, ny)
im = plt.imshow(data)

def init():
im.set_data(np.zeros((nx, ny)))

def animate(i):
#xi = i // ny
#yi = i % ny
data = np.random.rand(nx, ny)
im.set_data(data)
return im

anim = animation.FuncAnimation(fig, animate, init_func=init, frames=50, repeat = False)

现在,我试图将其改编为 seaborn,但没有成功。似乎 seaborn 在子图上工作并且为它们制作动画要困难得多。我曾经得到的最好的东西是一种递归图,其中 seaborn.heatmaps 被绘制在彼此之上。此外,im.set_data 方法不可用。

非常感谢任何建议。

最佳答案

我用 seaborn.heatmap 替换了 plt.imshow(通过 set_data 转换数据无效)。

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib import animation

fig = plt.figure()
data = np.random.rand(10, 10)
sns.heatmap(data, vmax=.8, square=True)

def init():
sns.heatmap(np.zeros((10, 10)), vmax=.8, square=True, cbar=False)

def animate(i):
data = np.random.rand(10, 10)
sns.heatmap(data, vmax=.8, square=True, cbar=False)

anim = animation.FuncAnimation(fig, animate, init_func=init, frames=20, repeat = False)

这创建了我苦苦挣扎的递归情节。

关于python - 如何为 seaborn 的热图或相关矩阵制作动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33742845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com