# app.py import streamlit as st import pandas as pd import plotly.express as px from data_loader import simulate_transport_data # Configuraci贸n de la p谩gina st.set_page_config(page_title="Dashboard Transporte", layout="wide") # T铆tulo de la aplicaci贸n st.title("馃搳 Monitoreo de Flota de Transporte Urbano") # Cargar datos simulados df = simulate_transport_data() # Filtro por autob煤s bus = st.selectbox( "Selecciona un autob煤s", options=df['bus_id'].unique() ) filtered_df = df[df['bus_id'] == bus] # Secci贸n de KPIs resumen st.subheader(f"Resumen - {bus}") col1, col2, col3 = st.columns(3) with col1: st.metric( "Puntualidad Prom.", f"{filtered_df['punctuality'].mean():.2f} %" ) with col2: st.metric( "Ocupaci贸n Prom.", f"{filtered_df['occupancy'].mean():.2f} %" ) with col3: st.metric( "Consumo Medio", f"{filtered_df['fuel_eff'].mean():.2f} L/100km" ) # Gr谩fico de evoluci贸n diaria st.subheader("馃搱 Evoluci贸n Diaria") fig = px.line( filtered_df, x="date", y=["punctuality", "occupancy", "fuel_eff"], labels={"value": "Valor", "variable": "M茅trica"}, title="Indicadores diarios" ) st.plotly_chart(fig, use_container_width=True) # Gr谩fico de kil贸metros recorridos st.subheader("馃殫 Kilometraje Recorrido") fig2 = px.bar( filtered_df, x="date", y="km", color="km", title="KM recorridos por d铆a" ) st.plotly_chart(fig2, use_container_width=True)