perezcatriel commited on
Commit
65082b1
1 Parent(s): 2094908

[FIX] colores y estilos

Browse files
.streamlit/config.toml CHANGED
@@ -3,4 +3,4 @@ primaryColor = "#FC5C9C"
3
  backgroundColor = "#F5FFFA"
4
  secondaryBackgroundColor = "#C4C754"
5
  textColor = "#556B2F"
6
- font = "sans serif"
 
3
  backgroundColor = "#F5FFFA"
4
  secondaryBackgroundColor = "#C4C754"
5
  textColor = "#556B2F"
6
+ font = "sans"
app.py CHANGED
@@ -1,6 +1,4 @@
1
  # Importación de las bibliotecas necesarias
2
- import subprocess
3
-
4
  import pandas as pd
5
  import streamlit as st
6
 
@@ -13,7 +11,8 @@ df = pd.read_csv('data/po_excel_original.csv')
13
 
14
  # Seleccionar top clientes por ventas
15
  top_clientes = df.groupby("Clientes")["Total"].sum().sort_values(
16
- ascending=False)
 
17
 
18
  # Título de la aplicación Streamlit
19
  st.title("Análisis de Clientes y Ventas de Punto Orgánico")
@@ -26,6 +25,5 @@ def run():
26
  boxplot()
27
 
28
 
29
-
30
  if __name__ == "__main__":
31
  run()
 
1
  # Importación de las bibliotecas necesarias
 
 
2
  import pandas as pd
3
  import streamlit as st
4
 
 
11
 
12
  # Seleccionar top clientes por ventas
13
  top_clientes = df.groupby("Clientes")["Total"].sum().sort_values(
14
+ ascending=False
15
+ )
16
 
17
  # Título de la aplicación Streamlit
18
  st.title("Análisis de Clientes y Ventas de Punto Orgánico")
 
25
  boxplot()
26
 
27
 
 
28
  if __name__ == "__main__":
29
  run()
boxplot_clientes.py CHANGED
@@ -1,5 +1,4 @@
1
  import pandas as pd
2
- import plotly.express as px
3
  import plotly.graph_objects as go
4
  import streamlit as st
5
 
@@ -9,6 +8,7 @@ df = pd.read_csv('data/po_excel_original.csv')
9
  # Ordenar el DataFrame por la columna "Total" en orden descendente
10
  df = df.sort_values(by="Total", ascending=False)
11
 
 
12
  def boxplot():
13
  # Subtítulo: Boxplot de Clientes
14
  st.subheader("Boxplot de Clientes")
@@ -17,35 +17,45 @@ def boxplot():
17
  fig = go.Figure()
18
 
19
  # Agregar los boxplots
20
- fig.add_trace(go.Box(y=df["Total"],
21
- name="Boxplot",
22
- marker_color = 'green')) # Color del boxplot
 
 
 
 
23
 
24
  # Agregar los puntos de los clientes y sus nombres a la leyenda
25
  for i, row in df.iterrows():
26
- fig.add_trace(go.Scatter(x=[len(df) + 2],
27
- y=[row["Total"]],
28
- mode='markers',
29
- name=row["Clientes"],
30
- marker=dict(color='#FC5C9C', size=12,
31
- symbol='circle'), # Color de los markers
32
- visible='legendonly'))
 
 
 
 
 
 
33
 
34
  # Configurar el diseño del boxplot y el tamaño de la figura
35
  fig.update_layout(
36
- yaxis=dict(title="Ventas"),
37
- boxmode='group',
38
- autosize=True,
39
- width=900,
40
- height=600,
41
- legend=dict(
42
- x=1.1,
43
- y=0.5,
44
- bgcolor='rgba(255, 255, 255, 0.5)',
45
- bordercolor='rgba(0, 0, 0, 0.3)',
46
- borderwidth=1
47
- )
48
- )
49
 
50
  # Mostrar el boxplot con los nombres de los clientes
51
  st.plotly_chart(fig, use_container_width=True)
 
1
  import pandas as pd
 
2
  import plotly.graph_objects as go
3
  import streamlit as st
4
 
 
8
  # Ordenar el DataFrame por la columna "Total" en orden descendente
9
  df = df.sort_values(by="Total", ascending=False)
10
 
11
+
12
  def boxplot():
13
  # Subtítulo: Boxplot de Clientes
14
  st.subheader("Boxplot de Clientes")
 
17
  fig = go.Figure()
18
 
19
  # Agregar los boxplots
20
+ fig.add_trace(
21
+ go.Box(
22
+ y=df["Total"],
23
+ name="Boxplot",
24
+ marker_color='green'
25
+ )
26
+ ) # Color del boxplot
27
 
28
  # Agregar los puntos de los clientes y sus nombres a la leyenda
29
  for i, row in df.iterrows():
30
+ fig.add_trace(
31
+ go.Scatter(
32
+ x=[len(df) + 2],
33
+ y=[row["Total"]],
34
+ mode='markers',
35
+ name=row["Clientes"],
36
+ marker=dict(
37
+ color='#FC5C9C', size=12,
38
+ symbol='circle'
39
+ ), # Color de los markers
40
+ visible='legendonly'
41
+ )
42
+ )
43
 
44
  # Configurar el diseño del boxplot y el tamaño de la figura
45
  fig.update_layout(
46
+ yaxis=dict(title="Ventas"),
47
+ boxmode='group',
48
+ autosize=True,
49
+ width=900,
50
+ height=600,
51
+ legend=dict(
52
+ x=1.1,
53
+ y=0.5,
54
+ bgcolor='rgba(255, 255, 255, 0.5)',
55
+ bordercolor='rgba(0, 0, 0, 0.3)',
56
+ borderwidth=1
57
+ )
58
+ )
59
 
60
  # Mostrar el boxplot con los nombres de los clientes
61
  st.plotly_chart(fig, use_container_width=True)
top_5_clientes.py CHANGED
@@ -1,10 +1,11 @@
1
  import pandas as pd
2
- import streamlit as st
3
  import plotly.express as px
 
4
 
5
  # Carga del archivo CSV
6
  df = pd.read_csv('data/po_excel_original.csv')
7
 
 
8
  def top_5():
9
  # Ordenar el DataFrame por el total de forma descendente
10
  df_sorted = df.sort_values("Total", ascending=False)
@@ -13,15 +14,20 @@ def top_5():
13
  st.sidebar.title("Filtros Ventas Anuales TOP clientes")
14
 
15
  # Crear los controles interactivos para los filtros en la barra lateral
16
- filtro_x = st.sidebar.slider("Monto mínimo de compras", min_value=0, max_value=int(df_sorted["Total"].max()),
17
- value=100, step=1)
 
 
 
18
 
19
  # Aplicar los filtros al DataFrame
20
  df_filtrado = df_sorted[df_sorted["Total"] >= filtro_x]
21
 
22
  # Control para la cantidad de clientes a mostrar
23
- filtro_n = st.sidebar.slider("Cantidad de clientes a mostrar", min_value=1,
24
- max_value=len(df_filtrado), value=10)
 
 
25
 
26
  # Aplicar el segundo filtro al DataFrame
27
  df_filtrado = df_filtrado.head(filtro_n)
@@ -30,23 +36,24 @@ def top_5():
30
  st.subheader("Ventas Anuales por TOP de clientes")
31
 
32
  # Crear el gráfico interactivo con Plotly
33
- fig = px.bar(df_filtrado, x="Total", y="Clientes", color="Total",
34
- log_x=True, color_continuous_scale="greens") # Modificar la paleta de colores
 
 
35
 
36
  # Personalizar el diseño del gráfico
37
  fig.update_layout(
38
- xaxis=dict(categoryorder="total descending"),
39
- yaxis={'categoryorder':'total ascending'},
40
- showlegend=False
41
- )
42
 
43
  # Configurar el tamaño del gráfico para que se muestren todos los nombres
44
  fig.update_layout(
45
- autosize=True,
46
- width=800,
47
- height=500
48
- )
49
 
50
  # Mostrar el gráfico en Streamlit
51
  st.plotly_chart(fig)
52
-
 
1
  import pandas as pd
 
2
  import plotly.express as px
3
+ import streamlit as st
4
 
5
  # Carga del archivo CSV
6
  df = pd.read_csv('data/po_excel_original.csv')
7
 
8
+
9
  def top_5():
10
  # Ordenar el DataFrame por el total de forma descendente
11
  df_sorted = df.sort_values("Total", ascending=False)
 
14
  st.sidebar.title("Filtros Ventas Anuales TOP clientes")
15
 
16
  # Crear los controles interactivos para los filtros en la barra lateral
17
+ filtro_x = st.sidebar.slider(
18
+ "Monto mínimo de compras", min_value=0,
19
+ max_value=int(df_sorted["Total"].max()),
20
+ value=100, step=1
21
+ )
22
 
23
  # Aplicar los filtros al DataFrame
24
  df_filtrado = df_sorted[df_sorted["Total"] >= filtro_x]
25
 
26
  # Control para la cantidad de clientes a mostrar
27
+ filtro_n = st.sidebar.slider(
28
+ "Cantidad de clientes a mostrar", min_value=1,
29
+ max_value=len(df_filtrado), value=10
30
+ )
31
 
32
  # Aplicar el segundo filtro al DataFrame
33
  df_filtrado = df_filtrado.head(filtro_n)
 
36
  st.subheader("Ventas Anuales por TOP de clientes")
37
 
38
  # Crear el gráfico interactivo con Plotly
39
+ fig = px.bar(
40
+ df_filtrado, x="Total", y="Clientes", color="Total",
41
+ log_x=True, color_continuous_scale="greens"
42
+ ) # Modificar la paleta de colores
43
 
44
  # Personalizar el diseño del gráfico
45
  fig.update_layout(
46
+ xaxis=dict(categoryorder="total descending"),
47
+ yaxis={'categoryorder': 'total ascending'},
48
+ showlegend=False
49
+ )
50
 
51
  # Configurar el tamaño del gráfico para que se muestren todos los nombres
52
  fig.update_layout(
53
+ autosize=True,
54
+ width=800,
55
+ height=500
56
+ )
57
 
58
  # Mostrar el gráfico en Streamlit
59
  st.plotly_chart(fig)
 
ventas_anuales_clientes.py CHANGED
@@ -1,7 +1,9 @@
 
 
1
  import pandas as pd
2
  import plotly.express as px
3
  import streamlit as st
4
- from datetime import date
5
 
6
  def ventas_anuales():
7
  # Carga del archivo CSV
@@ -13,17 +15,22 @@ def ventas_anuales():
13
  # Reordena los meses en orden cronológico
14
  meses_ordenados = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago',
15
  'Sep', 'Oct', 'Nov', 'Dic']
16
- df['Mes'] = pd.Categorical(df['Mes'], categories=meses_ordenados, ordered=True)
 
 
17
 
18
  # Ordena el DataFrame por año y mes
19
  df = df.sort_values(['Año', 'Mes'])
20
 
21
  # Filtra los datos hasta el último mes mostrado
22
- ultimo_mes_mostrado = meses_ordenados[date.today().month-1]
23
  df = df[df['Mes'] <= ultimo_mes_mostrado]
24
 
25
  # Crea el gráfico de barras
26
- fig = px.bar(df, x='Mes', y='Ventas', title='Ventas Anuales', labels={'Ventas': 'Ventas ($)', 'Mes': 'Mes', 'Año': 'Año'})
 
 
 
27
 
28
  # Cambia el color de las barras a verde
29
  fig.update_traces(marker_color='green')
 
1
+ from datetime import date
2
+
3
  import pandas as pd
4
  import plotly.express as px
5
  import streamlit as st
6
+
7
 
8
  def ventas_anuales():
9
  # Carga del archivo CSV
 
15
  # Reordena los meses en orden cronológico
16
  meses_ordenados = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago',
17
  'Sep', 'Oct', 'Nov', 'Dic']
18
+ df['Mes'] = pd.Categorical(
19
+ df['Mes'], categories=meses_ordenados, ordered=True
20
+ )
21
 
22
  # Ordena el DataFrame por año y mes
23
  df = df.sort_values(['Año', 'Mes'])
24
 
25
  # Filtra los datos hasta el último mes mostrado
26
+ ultimo_mes_mostrado = meses_ordenados[date.today().month - 1]
27
  df = df[df['Mes'] <= ultimo_mes_mostrado]
28
 
29
  # Crea el gráfico de barras
30
+ fig = px.bar(
31
+ df, x='Mes', y='Ventas', title='Ventas Anuales',
32
+ labels={'Ventas': 'Ventas ($)', 'Mes': 'Mes', 'Año': 'Año'}
33
+ )
34
 
35
  # Cambia el color de las barras a verde
36
  fig.update_traces(marker_color='green')