Networkx: как добавить метки ребер из файла csv в граф - PullRequest
1 голос
/ 09 июля 2020

Как добавить метку Edge из файла csv / excel в ориентированный граф networkx

Я хочу добавить метки в свой граф networkx из столбца Edge_label, присутствующего в файле csv

csv_file

import pandas as pd

import matplotlib.pyplot as plt
#%matplotlib inline

import networkx as nx

df = pd.read_csv('Trail_data.csv')

g = nx.from_pandas_edgelist(df,
                            'Source',
                            'Target',
                             create_using=nx.DiGraph() # For Directed Route arrows
                           ) 

plt.figure( figsize=(40, 40)
          )

nx.draw(g,
        with_labels=True,
        node_size= 3000,#k=200,
        node_color='#82CAFF',##00b4d9
        font_size=16,
        font_weight ='bold',
        font_color='black',
        edge_color = ('#E55451','#810541','#00FF00'),
        node_shape='o',
        width=4 ,
        arrows=True, #Show arrow From and To
        pos=nx.random_layout(g),iterations=20,
        connectionstyle='arc3, rad =0.11' #To avoid overlapping edgs
        
       )

plt.savefig('Visualization.jpeg', 
            dpi = (100)
           )

** Также я хотел преобразовать этот ориентированный граф в интерактивный граф с помощью python -da sh **

1 Ответ

1 голос
/ 09 июля 2020

Согласно документации from_pandas_edgelist вы можете просто указать список столбцов с помощью edge_attr.

В вашем случае вы получите желаемый график с помощью:

g = nx.from_pandas_edgelist(df,
                            'Source',
                            'Target',
                             edge_attr=`Edge_label`,
                             create_using=nx.DiGraph(),) 

В настоящее время для рисования вы рисуете только метки узлов. Вы можете добавить краевые метки с помощью draw_networkx_edge_labels

pos = nx.random_layout(g)
nx.draw(g, 
        pos=pos, ...)  # add other parameters
edge_labels = nx.get_edge_attributes(g, "Edge_label")
nx.draw_networkx_edge_labels(g, pos, edge_labels)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...