plotly - 使用共享滑块变量的多个跟踪

时间:2018-03-01 19:16:13

标签: python charts plotly

正如标题提示的那样,我正在努力创建一个图表图表,其中有多行是同一个滑块变量的函数。

我使用文档中的点点滴滴一起攻击了一些东西:https://pastebin.com/eBixANqA。这适用于一行。 enter image description here

现在我想在同一个图表中添加更多行,但这是我在努力的地方。 https://pastebin.com/qZCMGeAa。 我得到了PlotlyListEntryError: Invalid entry found in 'data' at index, '0' Path To Error: ['data'][0]

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

看起来您使用https://plot.ly/python/sliders/作为参考,遗憾的是我没有时间测试您的代码,但这应该很容易适应。如果您创建要绘制的每条迹线的方式与以前相同:

trace1 = [dict(
            type='scatter',
            visible = False,
            name = "trace title",
            mode = 'markers+lines',
            x = x[0:step],
            y = y[0:step]) for step in range(len(x))]

我在我的例子中注意到我的数据来自预先定义的列表,你正在使用一个函数,这可能是除了你自己的步长之外你真正需要做的唯一改变。

如果以相同的方式创建第二个跟踪,例如

trace2 = [dict(
            type='scatter',
            visible = False,
            name = "trace title",
            mode = 'markers+lines',
            x = x2[0:step],
            y = y2[0:step]) for step in range(len(x2))]`

然后,您可以将所有数据与以下内容放在一起

all_traces = trace1 + trace2

然后你可以继续绘制它,只要你的布局设置正确(它应该保持不变,从你的单个跟踪示例):

fig = py.graph_objs.Figure(data=all_traces, layout=layout)
py.offline.iplot(fig)

如果跟随https://plot.ly/python/sliders/以使滑块工作,则滑块应控制两条迹线。您可以通过这种方式组合多个数据字典,以便使用同一个滑块控制多个绘图。

我注意到如果你的包含数据的词典列表长度不同,那就会变得极其混乱。