import pandas as pd import plotly.graph_objects as go import streamlit as st # Carga del archivo CSV df = pd.read_csv('data/po_excel_original.csv') # Ordenar el DataFrame por la columna "Total" en orden descendente df = df.sort_values(by="Total", ascending=False) def boxplot(): # Subtítulo: Boxplot de Clientes st.subheader("Boxplot de Clientes") # Crear un boxplot de las ventas por cliente fig = go.Figure() # Agregar los boxplots fig.add_trace( go.Box( y=df["Total"], name="Boxplot", marker_color='green' ) ) # Color del boxplot # Agregar los puntos de los clientes y sus nombres a la leyenda for i, row in df.iterrows(): fig.add_trace( go.Scatter( x=[len(df)], y=[row["Total"]], mode='markers', name=row["Clientes"], marker=dict( color='#FC5C9C', size=12, symbol='circle' ), # Color de los markers visible='legendonly' ) ) # Configurar el diseño del boxplot y el tamaño de la figura fig.update_layout( yaxis=dict(title="Ventas"), boxmode='group', autosize=True, width=900, height=600, legend=dict( x=1.1, y=0.5, bgcolor='rgba(255, 255, 255, 0.5)', bordercolor='rgba(0, 0, 0, 0.3)', borderwidth=1 ) ) # Mostrar el boxplot con los nombres de los clientes st.plotly_chart(fig, use_container_width=True)