我必须创建具有各种曲线的图形以进行绘制。我的目标是创建一个下拉窗口小部件,在其中可以选择要绘制的曲线,即选择我的iplot将要绘制的数据。
我正在使用Jupyter Notebook。我导入了iplot并初始化了笔记本模式。
from plotly.offline import iplot, init_notebook_mode
我的x轴始终相同:X = [1,2,3,4,5,6,7,8,9,10,11,12]
。
我的y数据是我希望能够通过小部件更改的内容:我有一个列表列表,并且我希望能够选择要绘制的列表的索引。
到目前为止,我有一个图形在其中绘制所有数据,还有一个不执行任何操作的下拉小部件:
k=len(Y)
updatemenus = [
{
'buttons': [
{
'method': 'restyle',
'label': str(i),
'args': [
{},
]
} for i in range(k)
],
'direction': 'down',
'showactive': True,
}
]
iplot({
'data':
[{'x': [1,2,3,4,5,6,7,8,9,10,11,12],
'y': Y[i],
'name': str(i)
} for i in range(k)],
'layout': {'title': 'Title',
'updatemenus': updatemenus}
})
我觉得我必须在updatemenus
的'args'中写一些东西,但是我找不到它。我已经尝试过类似'y': Y[i]
之类的事情,但是它只是绘制一条直线,好像iplot中没有指示“ y”轴一样。
答案 0 :(得分:0)
所以我找到了一个解决方案,尽管它可能并不理想:在updatemenus的args选项中,我现在写了{'visible': [False]*i+[True]+[False]*(k-i-1)}
。
为了使图形仅在执行程序时绘制第一条曲线,我已经修改了iplot命令,如下所示:
iplot({
'data':
[{'x': [1,2,3,4,5,6,7,8,9,10,11,12],
'y': Y[i],
'name': str(i),
'visible': i==0
} for i in range(k)],
'layout': {'title': 'Title',
'updatemenus': updatemenus}
})