punto_organico / boxplot_clientes.py
perezcatriel's picture
[FIX] colores y estilos
e4fd41a
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)