【问题标题】:How to change data and graph using buttons in plotly python?如何使用 plotly python 中的按钮更改数据和图形?
【发布时间】:2018-02-18 08:26:57
【问题描述】:

基于此代码直接来自 plotly 的 tut 页面:

https://plot.ly/python/dropdowns/

现在,如果我不仅要更改图表类型,还要更改数据源及其图表类型,该怎么办? 可能吗?

编辑:

我玩过这个设置:

data1 = go.Surface(z=df.values.tolist(), colorscale='Viridis')
data2 = go.Heatmap(z=df.values.tolist())

buttons=list([   
            dict(
                args=[data1],
                label='3D Surface',
                method='restyle'
            ),
            dict(
                args=[data2],
                label='Heatmap',
                method='restyle'
            )             
        ])

但是,图表显示出来了,但被覆盖了。当我点击下拉菜单中的任何项目时,图表完全消失了。

【问题讨论】:

  • 该页面上描述的restyle 方法不是举例说明如何使用py.iplot(dict(data=data, layout=layout), ...) 更改数据吗?注意:您应该在问题中包含您尝试使用 embedded 的代码。仅引用外部站点是不够的。
  • 刚刚添加了几行我的代码...

标签: python plotly


【解决方案1】:

我自己找到了一个解决方案,实际上是基于 tut:

import plotly
import plotly.graph_objs as go 
from datetime import datetime
import pandas_datareader as web

df = web.DataReader("aapl", 'google',
                    datetime(2015, 1, 1),
                    datetime(2016, 7, 1))

trace_high = go.Bar(    x=df.index,
                        y=df.High,
                        name='High')

trace_low = go.Scatter(x=df.index,
                       y=df.Low,
                       name='Low',
                       line=dict(color='#F06A6A'))

data = [trace_high, trace_low]


updatemenus = list([
    dict(active=-1,
         buttons=list([   
            dict(label = 'High',
                 method = 'update',
                 args = [{'visible': [True, False]},
                         {'title': 'Yahoo High'}]),

            dict(label = 'Low',
                 method = 'update',
                 args = [{'visible': [False, True]},
                         {'title': 'Yahoo Low'}])
        ]),
    )
])

layout = dict(title='Yahoo', showlegend=False,
              updatemenus=updatemenus)

fig = dict(data=data, layout=layout)

plotly.offline.plot(fig, auto_open=False, show_link=False)

【讨论】:

  • 这对我不起作用。生成了一个图,但当我尝试选择不同的图(即低或高)时没有任何反应。
猜你喜欢
  • 1970-01-01
  • 2021-12-16
  • 2021-10-11
  • 2019-11-15
  • 1970-01-01
  • 2019-04-26
  • 2020-09-05
  • 1970-01-01
  • 2016-09-28
相关资源
最近更新 更多