【问题标题】:Plot two different datasets into plotly using drop down menu使用下拉菜单将两个不同的数据集绘制成 plotly
【发布时间】:2019-04-29 16:39:16
【问题描述】:

我有两个不同的数据集 (x0,y0), (x1,y1)。我需要创建两个图并使用下拉菜单在它们之间进行选择。

我正在使用此代码:

import plotly
import plotly.graph_objs as go
import random

x0 = [x for x in range(0,20)]
x1 = [x for x in range(5,100)]

y0 = [random.randint(0,20) for x in range(len(x0))]
y1 = [random.randint(0,50) for x in range(len(x1))]

trace1 = go.Scatter(x=x0,y=y0,line=dict(shape='vh'))
trace2 = go.Scatter(x=x1,y=y1,line=dict(shape='vh'))

data = [trace1,trace2]

updatemenus = list([
    dict(active=0,
         buttons=list([   
            dict(label = "4 Aug 1",
                 method = "update",
                 args= [data[0]]),
            dict(label = "4 Aug 2",
                 method = "update",
                 args= [data[1]])]))])


layout = dict(title="Dropdown",
              showlegend=True,
              xaxis=dict(title="Hours"),
              yaxis=dict(title="Number"),
              updatemenus=updatemenus)

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

plotly.offline.plot(fig)

使用此代码,它将两个数据集绘制到一个区域中,我不想这样做。当我在下拉菜单中选择合适的图表时,它只是无法加载合适的图表。

【问题讨论】:

    标签: python plotly


    【解决方案1】:

    问题是您直接将跟踪分配给args。相反,您应该使用visible 属性来控制data 中的哪些跟踪可见:

    updatemenus = list([
        dict(active=0,
             showactive = True,
             buttons=list([   
                dict(label = "4 Aug 1",
                     method = "update",
                     args = [{"visible": [True, False]}]), # hide trace2
                dict(label = "4 Aug 2",
                     method = "update",
                     args = [{"visible": [False, True]}]) # hide trace1
                ]))])
    

    如果您只想在页面加载时显示第一个跟踪,您还需要将第二个跟踪的visible属性显式设置为False

    trace1 = go.Scatter(x=x0,y=y0,line=dict(shape='vh'))
    trace2 = go.Scatter(x=x1,y=y1,line=dict(shape='vh'), visible=False)
    data = [trace1,trace2]
    

    请参阅official Plotly example

    【讨论】:

    • 是的,这非常有效。谢谢你。我可以问一下 active = 0 代表什么吗?我在文档中找不到。谢谢。
    • active 确定加载页面时选择下拉列表中的哪个条目。所以现在active=0 表示在下拉列表中选择了第一个条目4 Aug 1。您也可以将其设置为-1,以便不选择任何条目。见plot.ly/python/reference/…
    猜你喜欢
    • 2021-09-04
    • 2021-03-18
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 2020-04-11
    • 2021-09-06
    • 2016-07-28
    • 1970-01-01
    相关资源
    最近更新 更多