Spaces:
Sleeping
Sleeping
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) | |