ai didi

python - Plotly:如何使用下拉菜单过滤 pandas 数据框?

转载 作者:行者123 更新时间:2023-12-01 06:42:07 24 4
gpt4 key购买 nike

我有一个数据框,并使用plotly我想可视化数据。我有以下代码

fig = px.line(df, x="row_num", y="audienceWatchRatio", color='vid_id')
fig.show()

enter image description here

这真的很困惑,所以我想要一个下拉菜单,用户可以在其中选择 vid_id 并且它只显示 1 个图表。

最佳答案

您可以设置一个跟踪,并为每个单独的跟踪设置一个按钮选项。这将使这个数字...

enter image description here

...进入此:

enter image description here

按钮选项 A 将替换为数据框中的第一列。下拉菜单将允许您选择要在图中显示的列。

代码:

import numpy as np
import pandas as pd
import plotly.graph_objects as go
import datetime

# mimic OP's datasample

NPERIODS = 200

np.random.seed(123)
df = pd.DataFrame(np.random.randint(-10, 12, size=(NPERIODS, 4)),
columns=list('ABCD'))
datelist = pd.date_range(datetime.datetime(2020, 1, 1).strftime('%Y-%m-%d'),
periods=NPERIODS).tolist()
df['dates'] = datelist
df = df.set_index(['dates'])
df.index = pd.to_datetime(df.index)
df.iloc[0] = 0
df = df.cumsum()

# # plotly
fig = go.Figure()

# set up ONE trace
fig.add_trace(go.Scatter(x=df.index,
y=df[df.columns[0]],
visible=True)
)

updatemenu = []
buttons = []

# button with one option for each dataframe
for col in df.columns:
buttons.append(dict(method='restyle',
label=col,
visible=True,
args=[{'y':[df[col]],
'x':[df.index],
'type':'scatter'}, [0]],
)
)

# some adjustments to the updatemenus
updatemenu = []
your_menu = dict()
updatemenu.append(your_menu)

updatemenu[0]['buttons'] = buttons
updatemenu[0]['direction'] = 'down'
updatemenu[0]['showactive'] = True

# add dropdown menus to the figure
fig.update_layout(showlegend=False, updatemenus=updatemenu)
fig.show()

关于python - Plotly:如何使用下拉菜单过滤 pandas 数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59406167/

24 4 0
文章推荐: jax-ws - @EJB 注入(inject)失败,但 JNDI 查找在 Glassfish 的 Web 服务类中有效
文章推荐: java - 对象的变量——Java
文章推荐: spring - Multi-Tenancy 应用程序中的 MyBatis spring
文章推荐: java - 从一堆 map 创建特定值列表的有效方法
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com