Сохранить график трассировки при запуске анимации - Plotly - PullRequest
0 голосов
/ 17 января 2020

Я строю тепловую карту с кумулятивной анимацией рассеяния для построения важных точек. Когда я начинаю скаттер анимацию, тепловая карта исчезает. Я рисую и мои точечные и тепловые карты как следы. Как я могу нарисовать мою тепловую карту один раз, а затем разбросать ее? Вот мой код:

, размещенный на сюжетном форуме: 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...