Spaces:
Sleeping
Sleeping
Commit
·
bf91a9d
1
Parent(s):
bd4a727
feat: generated files
Browse files
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] #
|
85 |
st.write("Valores ajustados para que la suma sea 1")
|
86 |
|
87 |
-
#
|
88 |
-
values += [values[0]]
|
89 |
manufacturers += [manufacturers[0]]
|
90 |
|
91 |
-
#
|
92 |
fig_spider.add_trace(go.Scatterpolar(
|
93 |
-
r=values, #
|
94 |
-
theta=manufacturers, #
|
95 |
-
fill='toself', #
|
96 |
name=f'Customer {customer_code}',
|
97 |
-
line_color='
|
98 |
-
fillcolor='rgba(
|
|
|
|
|
99 |
))
|
100 |
|
101 |
-
#
|
102 |
fig_spider.update_layout(
|
103 |
polar=dict(
|
104 |
radialaxis=dict(
|
105 |
visible=True,
|
106 |
-
range=[0, 1]
|
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 |
-
|
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 |
-
|
|
|
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)
|