Python中的Plotly动画滑块

Cal*_*ett 19 python animation data-visualization slider plotly

我试图在Jupyter笔记本中重新创建这个例子.

https://plot.ly/python/gapminder-example/

但是收到了这个错误:

PlotlyDictKeyError: 'slider' is not allowed in 'layout'

Path To Error: ['layout']['slider']

Valid attributes for 'layout' at path ['layout'] under parents ['figure']:

    ['angularaxis', 'annotations', 'autosize', 'bargap', 'bargroupgap',
    'barmode', 'barnorm', 'boxgap', 'boxgroupgap', 'boxmode', 'calendar',
    'direction', 'dragmode', 'font', 'geo', 'height', 'hiddenlabels',
    'hiddenlabelssrc', 'hidesources', 'hoverlabel', 'hovermode', 'images',
    'legend', 'mapbox', 'margin', 'orientation', 'paper_bgcolor',
    'plot_bgcolor', 'radialaxis', 'scene', 'separators', 'shapes',
    'showlegend', 'sliders', 'smith', 'ternary', 'title', 'titlefont',
    'updatemenus', 'width', 'xaxis', 'yaxis']

Run `<layout-object>.help('attribute')` on any of the above.
'<layout-object>' is the object at ['layout']
Run Code Online (Sandbox Code Playgroud)

动画运行时没有将滑块dict添加到布局中,滑块可见且可操作,但不会更改图形.当我移动滑块时,它会在控制台中产生以下错误:

Uncaught (in promise) undefined
Run Code Online (Sandbox Code Playgroud)

Nar*_*ali 6

更新:

我检查了你的图表,我有时会观察到下面的错误.

未定义(承诺)未定义

这个错误可能是由于故意错过点击或其他事件,但这是在plotly.js文件内部,如果你去Plotly Slider动画链接和该slider animation部分,点击播放并在播放运行时单击滑块我们得到此错误,即使我点击暂停,我也会收到此错误.但是如果我再次按下游戏,动画会继续播放,因此没有重大影响!只是事件处理不当.

因此,就您提供的图表而言,我可以使动画正常工作,尽管我得到错误(Uncaught (in promise) undefined)我仍然可以播放动画!

您可以使用iplot(fig, validate=False)或使用plot(fig)动画在Python中显示图形!

回答:

错误是因为layout对象有一个名为slidersnot 的属性slider,所以无论你slider在布局下使用哪个,请更改这个,这个图也很复杂,也可能有其他错误,请分享代码,进行调试.但是现在这将是我的答案.

之前:

['layout']['slider'] 
Run Code Online (Sandbox Code Playgroud)

后:

['layout']['sliders']
Run Code Online (Sandbox Code Playgroud)

请替换所有slider与布局相关的属性,这些属性需要更改为sliders.

参考文献:

我已经处理了与此特定滑块动画Plot​​ly图形相关的问题.如果需要,请参考他们,他们可能有助于解决您的问题!

  1. Plotly动画气泡图在剧情中没有数据
  2. Plotly错误无效的图或数据参数
  3. Puply在Jupyter Notebook上离线创建动画