Spaces:
Sleeping
Sleeping
File size: 1,736 Bytes
cfc6bc9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
import pandas as pd
import streamlit as st
import plotly.express as px
# Carga del archivo CSV
df = pd.read_csv('data/po_excel_original.csv')
def top_5():
# Ordenar el DataFrame por el total de forma descendente
df_sorted = df.sort_values("Total", ascending=False)
# Título para los filtros laterales
st.sidebar.title("Filtros Ventas Anuales TOP clientes")
# Crear los controles interactivos para los filtros en la barra lateral
filtro_x = st.sidebar.slider("Monto mínimo de compras", min_value=0, max_value=int(df_sorted["Total"].max()),
value=100, step=1)
# Aplicar los filtros al DataFrame
df_filtrado = df_sorted[df_sorted["Total"] >= filtro_x]
# Control para la cantidad de clientes a mostrar
filtro_n = st.sidebar.slider("Cantidad de clientes a mostrar", min_value=1,
max_value=len(df_filtrado), value=10)
# Aplicar el segundo filtro al DataFrame
df_filtrado = df_filtrado.head(filtro_n)
# Titulo del Grafico
st.subheader("Ventas Anuales por TOP de clientes")
# Crear el gráfico interactivo con Plotly
fig = px.bar(df_filtrado, x="Total", y="Clientes", color="Total",
log_x=True, color_continuous_scale="greens") # Modificar la paleta de colores
# Personalizar el diseño del gráfico
fig.update_layout(
xaxis=dict(categoryorder="total descending"),
yaxis={'categoryorder':'total ascending'},
showlegend=False
)
# Configurar el tamaño del gráfico para que se muestren todos los nombres
fig.update_layout(
autosize=True,
width=800,
height=500
)
# Mostrar el gráfico en Streamlit
st.plotly_chart(fig)
|