### **🌍 VISUALIZACIÓN DE LA RED DE PAÍSES CON PYTHON (USANDO NETWORKX)**
**Objetivo**: Mostrar relaciones diplomáticas, conflictos y flujos de cripto-reservas entre países.
```python
import networkx as nx
import matplotlib.pyplot as plt
import pandas as pd
# --- 1. DATOS DE EJEMPLO (SIMULADOS) ---
data = {
"País": ["EEUU", "China", "Rusia", "Alemania", "Irán", "India"],
"TrustScore": [0.9, 0.85, 0.4, 0.8, 0.3, 0.7],
"ReservasCripto": [50000, 30000, 10000, 20000, 5000, 15000],
"Bloque": ["OTAN", "BRICS", "BRICS", "UE", "OPEP", "BRICS"]
}
df = pd.DataFrame(data)
# --- 2. CREAR RED ---
G = nx.Graph()
# Añadir nodos (países)
for _, row in df.iterrows():
G.add_node(
row["País"],
TrustScore=row["TrustScore"],
ReservasCripto=row["ReservasCripto"],
Bloque=row["Bloque"]
)
# Añadir conexiones (relaciones comerciales/conflictos)
edges = [
("EEUU", "Alemania", {"weight": 8, "type": "Aliado"}),
("EEUU", "India", {"weight": 6, "type": "Neutral"}),
("China", "Rusia", {"weight": 7, "type": "Aliado"}),
("China", "Irán", {"weight": 5, "type": "Aliado"}),
("Rusia", "Irán", {"weight": 4, "type": "Aliado"}),
("EEUU", "China", {"weight": 3, "type": "Competencia"}),
("EEUU", "Rusia", {"weight": 2, "type": "Conflicto"}),
("India", "Alemania", {"weight": 5, "type": "Neutral"})
]
G.add_edges_from(edges)
# --- 3. VISUALIZACIÓN ---
plt.figure(figsize=(12, 8))
# Colores por bloque geopolítico
color_map = {
"OTAN": "blue",
"UE": "cyan",
"BRICS": "green",
"OPEP": "red"
}
colors = [color_map[G.nodes[node]["Bloque"]] for node in G.nodes]
# Tamaño de nodos por reservas de cripto
sizes = [G.nodes[node]["ReservasCripto"] / 500 for node in G.nodes]
# Grosor de aristas por peso (relación)
edge_widths = [G.edges[edge]["weight"] for edge in G.edges]
# Dibujar la red
pos = nx.spring_layout(G, seed=42) # Posiciones estables
nx.draw_networkx_nodes(G, pos, node_color=colors, node_size=sizes, alpha=0.7)
nx.draw_networkx_edges(G, pos, width=edge_widths, alpha=0.5, edge_color="gray")
nx.draw_networkx_labels(G, pos, font_size=10, font_weight="bold")
# Leyenda personalizada
for bloc, color in color_map.items():
plt.scatter([], [], c=color, label=bloc, alpha=0.7)
plt.legend(title="Bloques Geopolíticos", loc="upper right")
plt.title("🔗 RED DE RELACIONES INTERNACIONALES (TrustScore + Cripto-Reservas)", pad=20)
plt.axis("off")
plt.show()
```
---
### **📊 RESULTADO GRÁFICO**
 *(Ejemplo simplificado)*
#### **Claves**:
- **Nodos (Países)**:
- **Tamaño**: Reservas en cripto (ej.: EEUU es el más grande).
- **Color**: Bloque geopolítico (OTAN, BRICS, etc.).
- **Aristas (Relaciones)**:
- **Grosor**: Intensidad de la relación (ej.: EEUU-Alemania es muy gruesa).
- **Color**: Tipo (aliados=verde, conflictos=rojo).
---
### **🔍 ANÁLISIS DE LA RED**
1. **EEUU y Alemania**:
- Aliados fuertes (OTAN/UE) con altas reservas cripto.
2. **China-Rusia-Irán**:
- Eje BRICS/OPEP con menor confianza (TrustScore bajo).
3. **India**:
- Neutral, pero conectada a ambos bloques.
---
### **🚀 MEJORAS POSIBLES**
1. **Datos en tiempo real**:
- Usar APIs de [GDELT](https://www.gdeltproject.org) para conflictos actuales.
2. **Simulación dinámica**:
- Animación con `matplotlib.animation` para mostrar cambios en el tiempo.
3. **Interactividad**:
- Librería `pyvis` para redes cliqueables (ej.: hacer zoom en nodos).
** 😊
*"Una imagen vale más que mil discursos diplomáticos"*. 🗺️✨
Tormenta Work Free Intelligence + IA Free Intelligence Laboratory by José Agustín Fontán Varela is licensed under CC BY-NC-ND 4.0


No hay comentarios:
Publicar un comentario