tx3bas commited on
Commit
ee8f205
·
verified ·
1 Parent(s): d8c8ec3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -68
app.py CHANGED
@@ -34,8 +34,7 @@ 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
 
40
  # Opción para apilar franjas de tiempo
41
  stacked = st.sidebar.checkbox("Apilar Franjas de Tiempo", value=True)
@@ -43,12 +42,13 @@ stacked = st.sidebar.checkbox("Apilar Franjas de Tiempo", value=True)
43
  # Crear el DataFrame con franjas de tiempo
44
  data_list = []
45
  for y_name, (start_date, end_date) in y_values.items():
46
- data_list.append({
47
- 'Variable': y_name,
48
- 'Start': datetime.strptime(start_date, '%Y-%m-%d'),
49
- 'End': datetime.strptime(end_date, '%Y-%m-%d'),
50
- 'Category': 'Apilado' if stacked else y_name # Esto asegura que se apilen en la misma fila pero mantengan su color
51
- })
 
52
 
53
  data = pd.DataFrame(data_list)
54
 
@@ -92,65 +92,5 @@ fig.update_layout(
92
  # Mostrar el gráfico
93
  st.plotly_chart(fig)
94
 
95
- # Información adicional
96
- st.write("Aquí puede añadir información adicional sobre los gráficos generados.")
97
- if y_start and y_end and y_name:
98
- y_values[y_name] = (y_start, y_end)
99
-
100
- # Opción para apilar franjas de tiempo
101
- stacked = st.sidebar.checkbox("Apilar Franjas de Tiempo", value=True)
102
-
103
- # Crear el DataFrame con franjas de tiempo
104
- data_list = []
105
- for y_name, (start_date, end_date) in y_values.items():
106
- data_list.append({
107
- 'Variable': y_name,
108
- 'Start': datetime.strptime(start_date, '%Y-%m-%d'),
109
- 'End': datetime.strptime(end_date, '%Y-%m-%d')
110
- })
111
-
112
- data = pd.DataFrame(data_list)
113
-
114
- # Ajustar fechas para simular apilamiento si está activado
115
- if stacked:
116
- offset = timedelta(days=1) # Ajusta el offset según sea necesario
117
- for i in range(1, len(data)):
118
- data.loc[i, 'Start'] = data.loc[i-1, 'End']
119
- data.loc[i, 'End'] = data.loc[i, 'Start'] + (data.loc[i, 'End'] - data.loc[i, 'Start'])
120
- data['Variable'] = 'Apilado' # Asegurarse de que todas las franjas estén en la misma fila
121
-
122
- # Crear gráfico de franjas de tiempo
123
- fig = px.timeline(data, x_start="Start", x_end="End", y="Variable", color="Variable", title=chart_title)
124
-
125
- # Actualizar el diseño del gráfico
126
- fig.update_yaxes(categoryorder="total ascending")
127
-
128
- # Personalizar el formato de tiempo en el eje X
129
- if time_format == "Año":
130
- tickformat = "%Y"
131
- else:
132
- tickformat = "%Y-%m-%d" # Ajusta según el formato deseado
133
-
134
- fig.update_layout(
135
- xaxis_title="Tiempo",
136
- yaxis_title="Variables",
137
- xaxis=dict(
138
- tickformat=tickformat,
139
- titlefont=dict(size=14),
140
- tickfont=dict(size=12),
141
- ),
142
- yaxis=dict(
143
- titlefont=dict(size=14),
144
- tickfont=dict(size=12),
145
- ),
146
- width=800,
147
- height=600,
148
- margin=dict(l=60, r=40, t=100, b=40),
149
- font=dict(family="Times New Roman", size=18, color="black")
150
- )
151
-
152
- # Mostrar el gráfico
153
- st.plotly_chart(fig)
154
-
155
  # Información adicional
156
  st.write("Aquí puede añadir información adicional sobre los gráficos generados.")
 
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
+ y_values[y_name] = (y_start, y_end)
 
38
 
39
  # Opción para apilar franjas de tiempo
40
  stacked = st.sidebar.checkbox("Apilar Franjas de Tiempo", value=True)
 
42
  # Crear el DataFrame con franjas de tiempo
43
  data_list = []
44
  for y_name, (start_date, end_date) in y_values.items():
45
+ if start_date and end_date and y_name:
46
+ data_list.append({
47
+ 'Variable': y_name,
48
+ 'Start': datetime.strptime(start_date, '%Y-%m-%d'),
49
+ 'End': datetime.strptime(end_date, '%Y-%m-%d'),
50
+ 'Category': 'Apilado' if stacked else y_name # Esto asegura que se apilen en la misma fila pero mantengan su color
51
+ })
52
 
53
  data = pd.DataFrame(data_list)
54
 
 
92
  # Mostrar el gráfico
93
  st.plotly_chart(fig)
94
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95
  # Información adicional
96
  st.write("Aquí puede añadir información adicional sobre los gráficos generados.")