Python 如何使用plotly express创建热图动画?

Python 如何使用plotly express创建热图动画?,python,plotly,Python,Plotly,我有一个方阵列表,M[t],其中t的范围从0到N,我希望使用plotly.express创建一个动画热图。每行/每列中的条目对应一个列表, a=['a1','a2',…'aN'] 关于动画的plotly文档非常稀少,只关注散点图和条形图 一个类似于我的问题发布在 然而,用户正在使用Jupyter笔记本电脑。我只是在Mac(OS 10.15.4)上使用Python3.7和空闲 我知道如何使用matplotlib或seaborn创建基本动画,但我喜欢plotly express附带的内置开始/停

我有一个方阵列表,M[t],其中t的范围从0到N,我希望使用plotly.express创建一个动画热图。每行/每列中的条目对应一个列表, a=['a1','a2',…'aN']

关于动画的plotly文档非常稀少,只关注散点图和条形图

一个类似于我的问题发布在

然而,用户正在使用Jupyter笔记本电脑。我只是在Mac(OS 10.15.4)上使用Python3.7和空闲

我知道如何使用matplotlib或seaborn创建基本动画,但我喜欢plotly express附带的内置开始/停止按钮。以下是我使用的一种方法,但我确信有更有效的方法使用matplotlib.animation:

import numpy as np
import matplotlib.pyplot as plt
#50 matrices, each of size 4-by-4.
N = 50
M = np.random.random((50, 4,4))

#Desired labels for heatmap--not sure where to put.
labels=['a','b','c','d']

fig, ax = plt.subplots()

for t in range(50):
    ax.cla()
    ax.imshow(M[t])
    ax.set_title("frame {}".format(t))
    plt.pause(0.1)

这对你有用吗

将numpy导入为np
导入plotly.graph_objs作为go
N=50
M=np.随机.随机((N,10,10))
图(
数据=[go.Heatmap(z=M[0])],
布局=go.layout(
title=“第0帧”,
updatemenus=[dict(
type=“按钮”,
按钮=[dict(label=“Play”,
method=“animate”,
args=[None])]]
),
frames=[go.Frame(数据=[go.Heatmap(z=M[i])],
layout=go.layout(title_text=f“Frame{i}”))
对于范围(1,N)内的i)]
)
图2(图3)
更新以防需要添加
暂停
按钮

fig=go.Figure(
数据=[go.Heatmap(z=M[0])],
布局=go.layout(
title=“第0帧”,
标题x=0.5,
updatemenus=[dict(
type=“按钮”,
按钮=[dict(label=“Play”,
method=“animate”,
args=[None]),
dict(label=“暂停”,
method=“animate”,
args=[无,
{“frame”:{“duration”:0,“redraw”:False},
“模式”:“立即”,
“转换”:{“持续时间”:0}}],
)])]
),
frames=[go.Frame(数据=[go.Heatmap(z=M[i])],
layout=go.layout(title_text=f“Frame{i}”))
对于范围(1,N)内的i)]
)
图2(图3)

你介意生成一个矩阵吗?我刚刚编辑了一个50个10×10的矩阵的例子。谢谢!这非常有用。嗨,rpanai,如何添加滑块来选择每一帧?我已经找了很久了。您介意更新您的代码以添加滑块吗?ThanksHi@roudan你读了吗?如果你仍然不能自己做,请告诉我。