我正在构建带有累积散布动画的热点图,以绘制重要点。当我开始分散动画时,热图消失了。我正在将散布图和热图绘制为迹线。如何绘制一次热图,然后在其上散布图?这是我的代码:
发布在论坛上:https://community.plot.ly/t/keep-heatmap-when-animation-starts/33671
scatterDf = pd.DataFrame({'Time': scatterDataX, 'Depth': scatterDataY, 'TimeShow': scatterTime})
fig = go.Figure()
traceHeatmap = go.Heatmap(
z=z2,
zauto=False,
zmin=-1,
zmax=1
)
traceScatter = go.Scatter(
x=[],
y=[],
mode='markers',
marker=dict(color=scatterDataX)
)
data = [traceHeatmap, traceScatter]
dataX = list(scatterDf['Time'])
dataY = list(scatterDf['Depth'])
frames = [dict(data= [dict(type='scatter',
x=dataX[:k+1],
y=dataY[:k+1])],
traces=[1],
name='frame{}'.format(k)
)for k in range(1, len(scatterDf))]
layout = go.Layout(
autosize=True,
hovermode='closest'
)
sliders = [dict(steps= [dict(method= 'animate',
args= [[ 'frame{}'.format(k) ],
dict(mode= 'immediate',
frame= dict( duration=100, redraw= False),
transition=dict( duration= 0)
)
],
label='{:d}'.format(k)
) for k in range(len(scatterDf))],
transition= dict(duration= 0 ),
x=0,#slider starting position
y=0,
currentvalue=dict(font=dict(size=12),
prefix='Point: ',
visible=True,
xanchor= 'center'),
len=1.0)
]
layout.update(updatemenus=[dict(type='buttons', showactive=False,
y=0,
x=0,
buttons=[dict(label='Play',
method='animate',
args=[None,
dict(frame=dict(duration=100,
redraw=False),
transition=dict(duration=0),
fromcurrent=True, mode='immediate')
]
)
]
)
],
sliders=sliders)
fig = go.Figure(data=data, layout=layout, frames=frames)
fig.update_yaxes(autorange="reversed", range=[5000, -1000])
fig.show()