使用networkX的python中的MultiDirectional Graph

用户12008603

问题相对简单,我无法找到相同的任何指针。我有以下值的csv:

 Source Destination value
    a         b     0.7
    b         c     0.58
    c         d     0.4
    a         d     0.52
    b         d     0.66
    d         b     0.30
    a         c     0.33

我想用python做图分析,我发现networkx是合适的选择。我使用以下代码实现了相同目的。

import networkx as nx
import pandas as pd

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

G = nx.from_pandas_edgelist(df, source='Source', target='Destination', edge_attr='value',)   

G.nodes()

G.edges()


nx.draw_networkx(G, with_labels=True)

由于csv中的值具有b-> d和d-> b,因此它将是一个多向图,但是当我尝试输出结果时,我没有得到这些值。

G.nodes()
NodeView(('a', 'b', 'c', 'd'))

G.edges()
EdgeView([('a', 'b'), ('a', 'd'), ('a', 'c'), ('b', 'c'), ('b', 'd'), ('c', 'd')])

输出量

我想了解为什么我无法在边缘响应中获得d-> b的边缘。

我在文档中找到nx.MultiDiGraph,但不确定如何使用它。

谢谢

国民党

DiGraph创建图形时,您应该只使用

G = nx.from_pandas_edgelist(df, source='Source', target='Destination', edge_attr='value', create_using=nx.DiGraph)
print(G.edges())
# OutEdgeView([('a', 'b'), ('a', 'd'), ('a', 'c'), ('b', 'c'), ('b', 'd'), ('c', 'd'), ('d', 'b')])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章