【发布时间】:2020-10-05 09:53:01
【问题描述】:
我正在使用滑动条来显示热图动画,并希望重新标记出现在滑动条上的刻度线。
我的动画有 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()
这很好用,我的其中一个框架得到了下面的图像:
我想做两个调整:
- 在左下角,将“Time-step 4”替换为以秒为单位的相应值,在这种情况下为“Time-20 秒”。
- 将滑动条上的刻度重新标记为以秒为单位,例如刻度标签“step-3”替换为“15”
我认为我的问题是我很明白是由
完成的sliders = [dict(
active=0,
currentvalue={"prefix": "Time "},
pad={"t": 5},
steps=steps
)]
【问题讨论】: