Spaces:
Runtime error
Runtime error
import csv | |
import networkx as nx | |
import matplotlib.pyplot as plt | |
def crear_grafo_desde_csv(archivo_csv): | |
# Crear un grafo vacío | |
G = nx.Graph() | |
with open(archivo_csv, mode='r', encoding='utf-8') as file: | |
reader = csv.reader(file) | |
for fila in reader: | |
# Añadir nodos para cada elemento de la fila | |
for item in fila: | |
G.add_node(item.strip()) | |
# Añadir aristas entre los elementos de la fila | |
for i in range(len(fila)): | |
for j in range(i + 1, len(fila)): | |
G.add_edge(fila[i].strip(), fila[j].strip()) | |
return G | |
def dibujar_y_guardar_grafo(G, output_file): | |
# Definir layout para el grafo | |
pos = nx.spring_layout(G, seed=42) | |
# Dibujar el grafo | |
plt.figure(figsize=(12, 8)) | |
nx.draw(G, pos, with_labels=True, node_color='skyblue', edge_color='gray', node_size=3000, font_size=10, font_weight='bold') | |
# Guardar el grafo en un archivo | |
plt.savefig(output_file, format='png', dpi=300) | |
plt.close() | |
print(f"Grafo guardado en: {output_file}") | |
# Ejemplo de uso | |
archivo_csv = 'proyectos_empresas.csv' # Reemplaza con tu archivo CSV | |
output_file = 'grafo_relaciones.png' | |
# Crear el grafo a partir del CSV | |
G = crear_grafo_desde_csv(archivo_csv) | |
# Dibujar y guardar el grafo | |
dibujar_y_guardar_grafo(G, output_file) | |