import pandas as pd import plotly.graph_objects as go def create_sunburst_plot(df): fig = go.Figure(go.Sunburst( labels=df['labels'], parents=df['parents'], values=df['values'], ids=df['ids'], text=df['text'], hoverinfo="label+value", branchvalues="total", )) fig.update_layout(margin=dict(t=0, l=0, r=0, b=0)) return fig data = [ {'ids': 'Root', 'labels': '📚 Prior Authorization Requirements', 'parents': '', 'values': None, 'text': '📚 Prior Authorization Requirements'}, {'ids': 'Hip Surgery', 'labels': '💉 Hip Surgery', 'parents': 'Root', 'values': 6500, 'text': '💉 Hip Surgery'}, {'ids': 'Knee Surgery', 'labels': '💉 Knee Surgery', 'parents': 'Root', 'values': 8500, 'text': '💉 Knee Surgery'}, {'ids': 'CPT1', 'labels': 'CPT 27130', 'parents': 'Hip Surgery', 'values': 5000, 'text': 'CPT 27130: Total Hip Arthroplasty'}, {'ids': 'CPT2', 'labels': 'CPT 20610', 'parents': 'Hip Surgery', 'values': 150, 'text': 'CPT 20610: Joint Aspiration or Injection'}, {'ids': 'CPT3', 'labels': 'CPT 73501', 'parents': 'Hip Surgery', 'values': 350, 'text': 'CPT 73501: Hip X-Ray, 1 view'}, {'ids': 'CPT4', 'labels': 'CPT 76700', 'parents': 'Hip Surgery', 'values': 1000, 'text': 'CPT 76700: Abdominal Ultrasound'}, ] df = pd.DataFrame(data) # Filter DataFrame using a query parameter def filter_data(df, query): return df.query(query) filtered_df = filter_data(df, "parents == 'Root'") fig = create_sunburst_plot(filtered_df) fig.show()