Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -24,16 +24,16 @@ st.sidebar.header("Configuración del Gráfico")
|
|
| 24 |
chart_title = st.sidebar.text_input("Título del Gráfico", "Gráfico de Franjas de Tiempo Apiladas")
|
| 25 |
|
| 26 |
# Seleccionar formato de tiempo
|
| 27 |
-
time_format = st.sidebar.selectbox("Formato de Tiempo", ["
|
| 28 |
|
| 29 |
# Ingresar valores para franjas de tiempo
|
| 30 |
-
num_y_vars = st.sidebar.number_input("Número de Variables Y", min_value=1, max_value=10, value=
|
| 31 |
|
| 32 |
y_values = {}
|
| 33 |
for i in range(num_y_vars):
|
| 34 |
-
y_start = st.sidebar.text_input(f"Fecha de Inicio para Y-{i+1} (YYYY-MM-DD)", key=f"y_start_{i}")
|
| 35 |
-
y_end = st.sidebar.text_input(f"Fecha de Fin para Y-{i+1} (YYYY-MM-DD)", key=f"y_end_{i}")
|
| 36 |
-
y_name = st.sidebar.text_input(f"Nombre de la Variable Y-{i+1}", key=f"y_name_{i}")
|
| 37 |
if y_start and y_end and y_name:
|
| 38 |
y_values[y_name] = (y_start, y_end)
|
| 39 |
|
|
@@ -48,23 +48,12 @@ for y_name, (start_date, end_date) in y_values.items():
|
|
| 48 |
|
| 49 |
data = pd.DataFrame(data_list)
|
| 50 |
|
| 51 |
-
# Convertir el DataFrame para el gráfico
|
| 52 |
-
data['Duration'] = data['End'] - data['Start']
|
| 53 |
-
data['Start'] = pd.to_datetime(data['Start'])
|
| 54 |
-
data['End'] = pd.to_datetime(data['End'])
|
| 55 |
-
|
| 56 |
# Crear gráfico
|
| 57 |
fig = px.timeline(data, x_start="Start", x_end="End", y="Variable", color="Variable", title=chart_title)
|
| 58 |
fig.update_yaxes(categoryorder="total ascending")
|
| 59 |
|
| 60 |
# Personalizar el formato de tiempo en el eje X
|
| 61 |
-
|
| 62 |
-
tickformat = "%d-%m-%Y"
|
| 63 |
-
elif time_format == "Mes":
|
| 64 |
-
tickformat = "%Y-%m"
|
| 65 |
-
else:
|
| 66 |
-
tickformat = "%Y"
|
| 67 |
-
|
| 68 |
fig.update_layout(
|
| 69 |
xaxis_title="Tiempo",
|
| 70 |
yaxis_title="Variables",
|
|
|
|
| 24 |
chart_title = st.sidebar.text_input("Título del Gráfico", "Gráfico de Franjas de Tiempo Apiladas")
|
| 25 |
|
| 26 |
# Seleccionar formato de tiempo
|
| 27 |
+
time_format = st.sidebar.selectbox("Formato de Tiempo", ["Año"])
|
| 28 |
|
| 29 |
# Ingresar valores para franjas de tiempo
|
| 30 |
+
num_y_vars = st.sidebar.number_input("Número de Variables Y", min_value=1, max_value=10, value=3, step=1)
|
| 31 |
|
| 32 |
y_values = {}
|
| 33 |
for i in range(num_y_vars):
|
| 34 |
+
y_start = st.sidebar.text_input(f"Fecha de Inicio para Y-{i+1} (YYYY-MM-DD)", key=f"y_start_{i}", value=f"202{i}-01-01")
|
| 35 |
+
y_end = st.sidebar.text_input(f"Fecha de Fin para Y-{i+1} (YYYY-MM-DD)", key=f"y_end_{i}", value=f"202{i+1}-12-31")
|
| 36 |
+
y_name = st.sidebar.text_input(f"Nombre de la Variable Y-{i+1}", key=f"y_name_{i}", value=f"Y-{i+1}")
|
| 37 |
if y_start and y_end and y_name:
|
| 38 |
y_values[y_name] = (y_start, y_end)
|
| 39 |
|
|
|
|
| 48 |
|
| 49 |
data = pd.DataFrame(data_list)
|
| 50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
# Crear gráfico
|
| 52 |
fig = px.timeline(data, x_start="Start", x_end="End", y="Variable", color="Variable", title=chart_title)
|
| 53 |
fig.update_yaxes(categoryorder="total ascending")
|
| 54 |
|
| 55 |
# Personalizar el formato de tiempo en el eje X
|
| 56 |
+
tickformat = "%Y" # Solo formato de año para este caso
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 57 |
fig.update_layout(
|
| 58 |
xaxis_title="Tiempo",
|
| 59 |
yaxis_title="Variables",
|