如何在plotly python中隐藏updatemenus中的按钮

时间:2017-04-13 09:16:45

标签: python-3.x plotly

我想用Python中的Plotly创建一个动态图表 - >通过图表中的按钮更改样式选项。因此,plotly提供按钮或drowdownmenus(updatemenus)。我目前的问题是,我想隐藏其中一些按钮,具体取决于哪一个是活动的。

我的示例是一个图表,我可以将图形从线条更改为标记(第一个按钮组),并作为线条的特殊选项,我提供点线,虚线和实线(第二个按钮设置)。 显然,在" Markers"时提供第二个按钮。活跃是没有意义的。所以我想隐藏第二组。但直到现在我还没有找到解决方案。 我正在使用plotly的离线版本。

我很感激任何建议,谢谢。

我的小例子:

import plotly as py
import plotly.graph_objs as go

x_ = [1, 2, 3, 4, 5, 6, 7, 8 , 9, 10]
y_ = [1, 1.2, 1.4, 1.5, 1.6, 1.5, 1.4, 1.4, 1.35, 1.3]

trace_ = go.Scatter(
    x = x_,
    y = y_,
    mode = "lines",
    line = dict(
        dash = "dot"
    )
)

layout_ = go.Layout(
    autosize = True
)

updatemenus_ = list([
    dict(
        buttons = list([
            dict(
                args=['mode', 'lines'],
                label='Lines',
                method='restyle'
            ),
            dict(
                args=['mode', 'markers'],
                label='Markers',
                method='restyle'
            )
        ]),
        direction = 'left',
        pad = {'r': 10, 't': 10},
        showactive = True,
        type = 'buttons',
        x = 0.1,
        xanchor = 'right',
        y = 1.1,
        yanchor = 'top'
    ),
    dict(
        buttons = list([
            dict(
                args=['line', {'dash': 'dot'}],
                label='Dotted Line',
                method='restyle'
            ),
            dict(
                args=['line', {'dash': 'dash'}],
                label='Dashed Line',
                method='restyle'
            ),
            dict(
                args=['line', {'dash': 'solid'}],
                label='Solid Line',
                method='restyle'
            )
        ]),
        direction = 'right',
        pad = {'r': 10, 't': 10},
        showactive = True,
        type = 'buttons',
        x = 0.5,
        xanchor = 'right',
        y = 1.1,
        yanchor = 'top'
    ),
])

layout_['updatemenus'] = updatemenus_

fig = dict(data=[trace_], layout=layout_)

py.offline.plot(fig, filename='MiniExample.html')

0 个答案:

没有答案