GMARTINEZMILLA commited on
Commit
bf91a9d
·
1 Parent(s): bd4a727

feat: generated files

Browse files
Files changed (1) hide show
  1. app.py +20 -23
app.py CHANGED
@@ -68,59 +68,56 @@ elif page == "Customer Analysis":
68
  # Ordenar los fabricantes por valor descendente para mejor visualización
69
  top_6_manufacturers = top_6_manufacturers.sort_values(by=customer_data.index[0], ascending=False)
70
 
71
- # Preparar los valores y fabricantes
72
  values = top_6_manufacturers[customer_data.index[0]].values.tolist()
73
  manufacturers = top_6_manufacturers.index.tolist()
74
 
75
- # Imprimir los resultados de cada fabricante
76
  st.write("### Resultados porcentaje fabricante (ordenados):")
77
  for i, manufacturer in enumerate(manufacturers):
78
  st.write(f"{manufacturer} = {values[i]:.4f}")
79
 
80
- # Verificar si alguno de los valores es 0
81
  if all(v > 0 for v in values):
82
- # Si no hay valores iguales a 0, ajustamos para que la suma sea 1
83
  total = sum(values)
84
- values = [v / total for v in values] # Normalizamos los valores para que sumen 1
85
  st.write("Valores ajustados para que la suma sea 1")
86
 
87
- # Añadir el primer valor al final para cerrar el gráfico
88
- values += [values[0]] # Repetir el primer valor al final para cerrar el gráfico
89
  manufacturers += [manufacturers[0]]
90
 
91
- # Definir los datos del gráfico
92
  fig_spider.add_trace(go.Scatterpolar(
93
- r=values, # Valores del gráfico ajustados
94
- theta=manufacturers, # Nombres de los fabricantes
95
- fill='toself', # Relleno del gráfico para darle un efecto visual más fuerte
96
  name=f'Customer {customer_code}',
97
- line_color='red', # Cambia el color del borde a rojo para que se parezca al gráfico del ejemplo
98
- fillcolor='rgba(255, 0, 0, 0.4)' # Color de relleno con algo de transparencia
 
 
99
  ))
100
 
101
- # Ajustar el diseño del gráfico para que se vea más cerca y las variables queden bien distribuidas
102
  fig_spider.update_layout(
103
  polar=dict(
104
  radialaxis=dict(
105
  visible=True,
106
- range=[0, 1], # Ajustar el rango a [0, 1] para reflejar que los valores están normalizados
107
- showline=False, # Elimina las líneas radiales internas para un estilo más limpio
108
  ),
109
  angularaxis=dict(
110
- linewidth=1,
111
- showline=True,
112
  tickmode='array',
113
- ticks='outside', # Coloca los nombres de los fabricantes fuera del gráfico
114
- tickvals=[i * (360 / 6) for i in range(6)], # Asegura 6 puntos distribuidos uniformemente
115
  )
116
  ),
117
- showlegend=False,
118
  title=f'Spider Chart for Top 6 Manufacturers of Customer {customer_code}',
119
- height=600, # Ajusta el tamaño del gráfico si necesitas más espacio
 
120
  width=600
121
  )
122
 
123
- # Mostrar el gráfico
124
  st.plotly_chart(fig_spider)
125
 
126
  # Ventas del cliente 2021-2024 (si los datos existen)
 
68
  # Ordenar los fabricantes por valor descendente para mejor visualización
69
  top_6_manufacturers = top_6_manufacturers.sort_values(by=customer_data.index[0], ascending=False)
70
 
71
+ # Preparar los valores y fabricantes reales
72
  values = top_6_manufacturers[customer_data.index[0]].values.tolist()
73
  manufacturers = top_6_manufacturers.index.tolist()
74
 
75
+ # Imprimir los resultados de cada fabricante para referencia
76
  st.write("### Resultados porcentaje fabricante (ordenados):")
77
  for i, manufacturer in enumerate(manufacturers):
78
  st.write(f"{manufacturer} = {values[i]:.4f}")
79
 
80
+ # Verificar si alguno de los valores es 0 y ajustar para que la suma sea 1 si es necesario
81
  if all(v > 0 for v in values):
 
82
  total = sum(values)
83
+ values = [v / total for v in values] # Normalizar los valores para que sumen 1
84
  st.write("Valores ajustados para que la suma sea 1")
85
 
86
+ # Asegurar que el gráfico se cierre correctamente, añadiendo el primer valor al final
87
+ values += [values[0]]
88
  manufacturers += [manufacturers[0]]
89
 
90
+ # Crear un gráfico polar con los datos reales
91
  fig_spider.add_trace(go.Scatterpolar(
92
+ r=values, # Los valores del cliente
93
+ theta=manufacturers, # Los nombres de los fabricantes
94
+ fill='toself', # Rellenar el gráfico
95
  name=f'Customer {customer_code}',
96
+ line_color='blue', # Color de la línea
97
+ fillcolor='rgba(0, 0, 255, 0.3)', # Color de relleno con transparencia
98
+ mode='lines+markers', # Mostrar tanto las líneas como los puntos
99
+ marker=dict(size=8, color='red') # Tamaño y color de los puntos
100
  ))
101
 
102
+ # Ajustes de la gráfica
103
  fig_spider.update_layout(
104
  polar=dict(
105
  radialaxis=dict(
106
  visible=True,
107
+ range=[0, 1] # Ajustar el rango para reflejar valores entre 0 y 1
 
108
  ),
109
  angularaxis=dict(
 
 
110
  tickmode='array',
111
+ tickvals=[i * (360 / 6) for i in range(6)], # Distribuir los puntos de los fabricantes de manera uniforme
 
112
  )
113
  ),
 
114
  title=f'Spider Chart for Top 6 Manufacturers of Customer {customer_code}',
115
+ showlegend=False, # Desactivar leyenda
116
+ height=600,
117
  width=600
118
  )
119
 
120
+ # Mostrar el gráfico con los datos reales
121
  st.plotly_chart(fig_spider)
122
 
123
  # Ventas del cliente 2021-2024 (si los datos existen)