По графику, имейте одно раскрывающееся меню для каждого уровня в мультииндексе 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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