Plotly verfügt über ein Dropdown-Menü für jede Ebene im DataFrame-MultiindexPython

Python-Programme
Anonymous
 Plotly verfügt über ein Dropdown-Menü für jede Ebene im DataFrame-Multiindex

Post by Anonymous »

Ich möchte ein Dropdown-Menü für jede Ebene in einem mehrfach indizierten Datenrahmen erstellen (Zeilen sind Beobachtungen, Spalten sind die Elemente der Auswahl).
Es ist ziemlich einfach, alle Tupel mit mehreren Indizes zu durchlaufen und ein einziges Dropdown-Menü zu haben, aber das ist nicht praktikabel, wenn große Mengen von Elementen in jeder Ebene verwendet werden.
Abschließend möchte ich es in der HTML-Datei interaktiv halten, also, soweit ich weiß, Dash ist keine Option (IPython.widgets auch nicht)

Code: Select all

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()

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post