По графику, имейте одно раскрывающееся меню для каждого уровня в мультииндексе DataFrame.Python

Программы на Python
Anonymous
По графику, имейте одно раскрывающееся меню для каждого уровня в мультииндексе DataFrame.

Сообщение Anonymous »

Я хочу создать одно раскрывающееся меню для каждого уровня в многоиндексном кадре данных (строки — это наблюдения, столбцы — элементы выборки).
Это довольно просто перебирать каждый кортеж с несколькими индексами и иметь одно раскрывающееся меню, но это невозможно при использовании больших наборов элементов на каждом уровне.
Наконец, я хотел бы сохранить его интерактивным в HTML-файле, насколько я понимаю, Dash не является вариантом (как и IPython.widgets)
import numpy as np
import pandas as pd
import plotly.graph_objects as go

## data looks something like this
categories = pd.Index(["A", "B"])
dates = pd.date_range(start="2026-01-01", end="2026-01-10", freq="D")
columns = pd.MultiIndex.from_product([dates, categories])
index = pd.Index(range(6), name="Observations")
x, y, z = (pd.DataFrame(
np.random.standard_normal(size=(len(index), len(columns))),
columns=columns,
index=index
) for _ in range(3))

## scatter plot
fig = go.Figure()
for date, cat in columns:
fig.add_scatter3d(
x=x[date, cat],
y=y[date, cat],
z=z[date, cat],
mode="markers",
)
fig.update_layout(updatemenus=[
dict(
x=0.85, y=1.00, xanchor="center", showactive=True,
buttons=[
dict(label=f"({date:%Y-%m-%d}, {cat})", method="restyle", visible=True, args=[{
"visible": np.arange(len(columns)) == c,
}])
for c, (date, cat) in enumerate(columns)
],
),
])
fig.show()


Подробнее здесь: https://stackoverflow.com/questions/798 ... ulti-index

Вернуться в «Python»