見出し画像

ルート可視化 機械学習


import networkx as nx
import matplotlib.pyplot as plt

df_tra = df_sol.copy()
df_pos = pd.read_csv('trans_route_pos.csv')

G = nx.Graph()

for i in range(len(df_pos.columns)):
  G.add_node(df_pos.columns[i])

num_pre = 0
edge_weights = []
size = 0.1

for i in range(len(df_pos.columns)):
  for j in range(len(df_pos.columns)):
    if not (i == j):
      G.add_edge(df_pos.columns[i],df_pos.columns[j])
      if num_pre < len(G.edges):
        num_pre = len(G.edges)
        weight = 0

        if (df_pos.columns[i] in df_tra.columns) and (df_pos.columns[j] in df_tra.index):
          if df_tra[df_pos.columns[i]][df_pos.columns[j]]:
            weight = df_tra[df_pos.columns[i]][df_pos.columns[j]] * size
        elif (df_pos.columns[j] in df_tra.columns) and (df_pos.columns[i] in df_tra.index):
          if df_tra[df_pos.columns[j]][df_pos.columns[i]]:
            weight = df_tra[df_pos.columns[j]][df_pos.columns[i]] * size
        edge_weights.append(weight)

pos = {}
for i in range(len(df_pos.columns)):
  node = df_pos.columns[i]
  pos[node] = (df_pos[node][0],df_pos[node][1])

nx.draw(G, pos, with_labels=True, font_size=16, node_size=1000, node_color='k', font_color='w', width = edge_weights)

plt.show()

pythonって面白いですね( ´∀` )
すごい!


この記事が気に入ったらサポートをしてみませんか?