python - Python - Plotly - 多轴图上的动态 y 轴选择
问题描述
我有一个多列的数据框,每列都包含一个时间序列。我想一次比较两个时间序列图,为此我将它们与两个 y 轴重叠绘制,如下例所示:https ://plot.ly/python/multiple-axes/#two-y-轴
我的问题是:
我想让用户一次只选择两条轨迹,
根据选择/取消选择的轨迹动态更改和调整 y 轴
基于上面链接中给出的示例:
import plotly
import plotly.plotly as py
import plotly.graph_objs as go
trace1 = go.Scatter(x=[1, 2, 3],y=[40, 50, 60],name='yaxis data')
trace2 = go.Scatter(x=[2, 3, 4],y=[4, 5, 6],name='yaxis2 data',yaxis='y2')
trace3 = go.Scatter( x=[3, 4, 5],y=[400, 500, 600],name='yaxis3 data', yaxis='y2', visible = 'legendonly')
data = [trace1, trace2, trace3]
layout = go.Layout(
title='Double Y Axis Example',
yaxis=dict(
title='yaxis title'
),
yaxis2=dict(
title='yaxis2 title',
titlefont=dict(
color='rgb(148, 103, 189)'
),
tickfont=dict(
color='rgb(148, 103, 189)'
),
overlaying='y',
side='right'
)
)
fig = go.Figure(data=data, layout=layout)
plotly.offline.plot(fig)
所以 plotly 应该让用户一次只选择两条迹线在绘图上可见,并动态地将下一个选定的迹线放在可用的 y 轴侧。
例如,如果“yaxis data”和“yaxis2 data”可见,则用户必须在从图例中选择“yaxis3 data”之前取消选择其中任何一个。因此,如果用户取消选择位于绘图左侧的“yaxis data”,则“yaxis3 data”的 y 轴标签应位于左侧。如果用户未选择“yaxis2 数据”,则新数据将位于右侧。
我希望yaxis= 'y' or 'y2'
通过交互式会话分配。我不知道如何实现。
解决方案
推荐阅读
- r - 将两个不同大小的 tbls 按一个因素连接起来,并将某个值的位置放在另一个中
- python - 如何用flask和docker部署rabbitmq?
- python - PCA的主要成分
- ruby-on-rails - 如何从 ActiveRecord::Relation 对象中删除对象
- excel - 需要一种方法来检查 VBA 中的注释是否为空
- google-sheets - 如何为整个电子表格中的所有行和列共享自动完成数据?
- javascript - 单元测试失败,因为 - 对象作为 React 子对象无效
- string - 为什么我得到“构造函数属性(字符串,布尔值)未定义”?
- r - 如何从 hana 获取数据到 R.my 代码显示错误
- sql - 是否可以使用 CASE 语句从一张表中列出所有可能的用户角色?[Teradata]