from datetime import date import pandas as pd import plotly.express as px import streamlit as st def ventas_anuales(): # Carga del archivo CSV df = pd.read_csv('data/po_excel_original.csv') # Transforma las columnas de meses en filas df = df.melt(id_vars='Año', var_name='Mes', value_name='Ventas') # Reordena los meses en orden cronológico meses_ordenados = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'] df['Mes'] = pd.Categorical( df['Mes'], categories=meses_ordenados, ordered=True ) # Ordena el DataFrame por año y mes df = df.sort_values(['Año', 'Mes']) # Filtra los datos hasta el último mes mostrado ultimo_mes_mostrado = meses_ordenados[date.today().month - 1] df = df[df['Mes'] <= ultimo_mes_mostrado] # Crea el gráfico de barras fig = px.bar( df, x='Mes', y='Ventas', title='Ventas Anuales', labels={'Ventas': 'Ventas ($)', 'Mes': 'Mes', 'Año': 'Año'} ) # Cambia el color de las barras a verde fig.update_traces(marker_color='green') # Muestra el gráfico en Streamlit st.plotly_chart(fig, use_container_width=True)