我正在使用滑块显示热图动画,并希望重新标记出现在滑块上的刻度线。
我的动画中有50帧,并且热图中的每个矩阵的尺寸为7×7,其中七行/列对应于列表,labels = ['A','B','C', 'D','D','F','G']。此外,在我的应用程序中,每个帧对应一个5秒的窗口,因此,例如,帧3对应于15秒。到目前为止,这是我的简单示例,在这里我模仿https://plotly.com/python/sliders/中的文档
import numpy as np
import plotly.graph_objs as go
N = 50
M = np.random.random((N, 7, 7))
labels=['A','B','C','D','D','F','G']
window_length=5
fig = go.Figure()
for step in range(N):
fig.add_trace(
go.Heatmap(x=labels,y=labels,z=M[step]))
fig.data[1].visible = True
# Create and add slider
steps = []
for i in range(len(fig.data)):
step = dict(
method="update",
args=[{"visible": [False] * len(fig.data)},
{"title": "Time: " + str(window_length*i)+' sec'}],)
step["args"][0]["visible"][i] = True # Toggle i'th trace to "visible"
steps.append(step)
sliders = [dict(
active=0,
currentvalue={"prefix": "Time "},
pad={"t": 5},
steps=steps
)]
fig.update_layout(
sliders=sliders)
fig.show()
这很好,我得到了其中一张相框的下面图像:
我要进行两项调整:
我认为我的问题是我完全理解是通过]完成的
sliders = [dict(
active=0,
currentvalue={"prefix": "Time "},
pad={"t": 5},
steps=steps
)]
我正在使用滑块显示热图动画,并希望重新标记出现在滑块上的刻度线。我的动画中有50帧,并且热图中的每个矩阵都有尺寸...
要在滑块的刻度标签上显示秒,您可以在用于创建滑块步骤的字典中设置label=str(window_length * i)
,而要在滑块上方显示“时间:20秒”,则可以在用于创建滑块步骤的字典中设置currentvalue={"prefix": "Time: ", "suffix": " seconds"}
创建滑块本身。我在下面提供了一个示例。