Gibt es eine Möglichkeit, über gruppierter Boxplots zu überlagern, damit sie mithilfe von Plotly Graph_Objects nicht ausPython

Python-Programme
Anonymous
 Gibt es eine Möglichkeit, über gruppierter Boxplots zu überlagern, damit sie mithilfe von Plotly Graph_Objects nicht aus

Post by Anonymous »

Ich versuche, die Streudiagramme auf ihren jeweiligen Boxplots zu lügen, um als Ausreißerpunkte zu fungieren. Da Plotlys draph_Object.box keine Methode zur Eingabe von Precalculated -Ausreißern hat, habe ich versucht, es so zu tun. Ich möchte nicht, dass Plotly die Ausreißer für die Zwecke des Projekts berechnet. Gibt es eine Möglichkeit, dies zu erreichen, indem der Streuwerk oder eine Funktion von Go.box übersehen wird, die dies tun kann? ">

Code: Select all

import plotly.graph_objects as go

def create_multiple_boxplots(summary_stats_list, labels, types, title="Multiple Boxplots"):
fig = go.Figure()

color_map = {"Rainy": "blue", "Sunny": "green"}

i=0
for stats, label, type_ in zip(summary_stats_list, labels, types):
fig.add_trace(go.Box(
name=type_,
q1=[stats['Q1']],
median=[stats['Median']],
q3=[stats['Q3']],
lowerfence=[stats['Min']],
upperfence=[stats['Max']],
mean=[stats['Mean']],
boxpoints='all' if 'Outliers' in stats else False,
jitter=0.3,
pointpos=-1.8,
marker=dict(color=color_map[type_]),  # Assign color based on type
legendgroup=type_,
showlegend=True if i < 2 else False,
x=[label],
# y=stats.get('Outliers', [])
))
# Add outlier points separately

fig.add_trace(go.Scatter(
x=[label] * len(stats['Outliers']),
y=stats['Outliers'],
mode='markers',
marker=dict(color=color_map[type_], size=8, symbol='circle-open'),
name=f"Outliers - {type_}",
legendgroup=type_,
showlegend=False
))
i+=1

fig.update_layout(title=title, yaxis_title="Value", boxmode='group')

fig.show()

# Example summary statistics
data_summaries = [
{"Min": 5, "Q1": 10, "Median": 15, "Q3": 20, "Max": 25, "Mean": 16, "Outliers": [2, 27]},
{"Min": 6, "Q1": 11, "Median": 16, "Q3": 21, "Max": 26, "Mean": 17, "Outliers": [3, 28]},
{"Min": 4, "Q1": 9, "Median": 14, "Q3": 19, "Max": 24, "Mean": 15, "Outliers": [1, 26]},
{"Min": 7, "Q1": 12, "Median": 17, "Q3": 22, "Max": 27, "Mean": 18, "Outliers": [4, 29]}
]
labels = ["Happy", "Happy", "Sad", "Sad"]
types = ["Rainy", "Sunny", "Rainy", "Sunny"]

create_multiple_boxplots(data_summaries, labels, types)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post