在Plotly中显示一片numpy 3D数组非常简单,只需使用Heatmap
:
import plotly.offline as offline
import plotly.graph_objs as go
import numpy as np
trace = go.Heatmap(z=3D_array[10,:,:]) # just one slice (10) along x axis
fig = dict(data=[trace])
offline.plot(fig, filename='heatmap.html')
我想要的是有一个滑块来查看任何切片。通过网络上的一些例子,我提出了这个:
figure = {
'data': [],
'layout': {},
'frames': [],
}
sliders_dict = {
'active': 0,
'yanchor': 'top',
'xanchor': 'left',
'currentvalue': {
'font': {'size': 20},
'prefix': 'Year:',
'visible': True,
'xanchor': 'right'
},
'transition': {'duration': 300, 'easing': 'cubic-in-out'},
'pad': {'b': 10, 't': 50},
'len': 0.9,
'x': 0.1,
'y': 0,
'steps': []
}
frame = {'data': []}
for i in range(A.shape[0]):
frame['data'].append(A[i, :, :])
figure['frames'].append(frame)
slider_step = {'args': [
[i],
{'frame': {'duration': 300, 'redraw': False},
'mode': 'immediate',
'transition': {'duration': 300}}
],
'label': i,
'method': 'animate'}
sliders_dict['steps'].append(slider_step)
figure['layout']['sliders'] = [sliders_dict]
figure['data'] = [go.Heatmap(z=A[10,:,:])]
print(figure.keys())
offline.plot(figure, filename='heatmap.html')
我无法让它发挥作用。我觉得连续帧的数据传递存在问题。
有关如何进行的任何提示?