滑块

Python 中的 Plotly 数据可视化入门

Alex Scriven

Data Scientist

什么是滑块?

 

  • 用于在数值间切换并更新图表的交互元素

  • 常用于按时间查看数据

  • 也可用于任意分组

$$

$$

$$

  • 💡 确保在你的图表中合理

 

年份滑块:

年份滑块

企鹅岛屿滑块:

企鹅岛屿滑块

Python 中的 Plotly 数据可视化入门

plotly.express 中的滑块

 

  • animation_frame 滑块显示的字段(上一页的 YearIsland

$$

  • animation_group:标识在各帧间保持一致的样本
Python 中的 Plotly 数据可视化入门

收入 vs. 员工数(含滑块)

fig = px.scatter(
  data_frame=revenues, 
  y='Revenue',
  x='Employees',
  color='Industry',

animation_frame='Year', animation_group='Company')
fig.update_layout({ 'yaxis': {'range': [0, 500000]}, 'xaxis': {'range': [-100000, 2500000]} })
fig['layout'].pop('updatemenus') fig.show()

 

各年收入

Python 中的 Plotly 数据可视化入门

限制:animate 方法

plotly.express 通过 animate 方法实现滑块

$$

fig['layout']['sliders'][0].steps[0]['method']
animate

$$

  • 仅对同一数据点随时间进行动画
  • 使用迹线自行构建滑块
Python 中的 Plotly 数据可视化入门

计划

 

  1. 创建包含所需迹线的图形对象
  2. 定义滑块对象以显示/隐藏迹线
  3. 更新布局,将滑块添加到图形
Python 中的 Plotly 数据可视化入门

创建图形

 

fig = go.Figure()

for island in ['Torgersen', 'Biscoe', 'Dream']: df = penguins[penguins.Island == island]
temp_trace = px.scatter(df, x="Culmen Length (mm)", y="Culmen Depth (mm)") fig.add_trace(temp_trace.data[0])
Python 中的 Plotly 数据可视化入门

创建滑块

sliders = [
  {'steps':[

{'method': 'update', 'label': 'Torgersen',
'args': [{'visible': [True, False, False]}]},
{'method': 'update', 'label': 'Bisco',
'args': [{'visible': [False, True, False]}]},
{'method': 'update', 'label': 'Dream',
'args': [{'visible': [False, False, True]}]}
]} ]

$$

更多格式选项见文档

Python 中的 Plotly 数据可视化入门

添加滑块

 

$$

fig.update_layout({'sliders': sliders})
fig.show()

企鹅岛屿滑块最终效果

Python 中的 Plotly 数据可视化入门

Passons à la pratique !

Python 中的 Plotly 数据可视化入门

Preparing Video For Download...