Plotly中的Numpy 3D阵列切片查看器

时间:2018-06-14 11:35:19

标签: python numpy plot slider plotly

在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')

我无法让它发挥作用。我觉得连续帧的数据传递存在问题。

有关如何进行的任何提示?

0 个答案:

没有答案