python - 如何使用 plotly python 中的按钮更改数据和图形?

标签 python plotly

基于直接来自 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'
            )             
        ])

但是,显示了图表,但重叠了。当我单击下拉菜单中的任何项目时,图表就完全消失了。

最佳答案

我自己找到了一个解决方案,实际上是基于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)

关于python - 如何使用 plotly python 中的按钮更改数据和图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46132943/

相关文章:

python - 使用没有 Selenium 的 Python 下载文件,例如 Chrome 的 "Save Link As"

python - 在 Mac M1 上安装 python 包时出现问题

python - 在 jupyter notebook python 中密谋

javascript - 我可以使用 Plotly 制作动画图吗?

python - 更改 plotly express 树状图的悬停文本

python - 本地运行的 python dash 应用程序对敏感数据是否安全?

python - 为什么 `datetime.date.today` 在 Python 中比 `datetime.datetime.now` 慢?

python - 如何在列表的间隔之间填充元素

javascript - Plotly - 从第一个数据点开始 X 轴

python - 在 Scipy 中使用 splev 评估样条的导数