- 您可以修改数字的内容。对于您注意到的用例,它是修改的cells内容
-
更新菜单是静态的,因此它是数据帧上的多个静态视图
- 下面的代码
import plotly.graph_objects as go
df = pd.DataFrame(
{
"Date": ["2020-01-27", "2020-02-27", "2020-03-27"],
"A_item": [2, 8, 0],
"B_item": [1, 7, 10],
"C_item": [9, 2, 9],
"Channel_type": ["Channel_1", "Channel_1", "Channel_2"],
}
)
fig = go.Figure(go.Table(header={"values": df.columns}, cells={"values": df.T.values}))
fig.update_layout(
updatemenus=[
{
"buttons": [
{
"label": c,
"method": "update",
"args": [
{
"cells": {
"values": df.T.values
if c == "All"
else df.loc[df["Channel_type"].eq(c)].T.values
}
}
],
}
for c in ["All"] + df["Channel_type"].unique().tolist()
]
}
]
)
多个菜单
Make 更新菜单 list a 列表理解
import plotly.graph_objects as go
df = pd.DataFrame(
{
"Date": ["2020-01-27", "2020-02-27", "2020-03-27"],
"A_item": [2, 8, 0],
"B_item": [1, 7, 10],
"C_item": [9, 2, 9],
"Channel_type": ["Channel_1", "Channel_1", "Channel_2"],
}
)
fig = go.Figure(go.Table(header={"values": df.columns}, cells={"values": df.T.values}))
fig.update_layout(
updatemenus=[
{
"y": 1 - (i / 5),
"buttons": [
{
"label": c,
"method": "restyle",
"args": [
{
"cells": {
"values": df.T.values
if c == "All"
else df.loc[df[menu].eq(c)].T.values
}
}
],
}
for c in ["All"] + df[menu].unique().tolist()
],
}
for i, menu in enumerate(["Channel_type", "Date"])
]
)