【问题标题】:Visualizing Network plot from the same value in dataframe从数据框中的相同值可视化网络图
【发布时间】:2020-11-24 12:42:10
【问题描述】:

假设我有这个包含 3794 行 x 2 列的数据框 df,其中列 a-number 表示具有指向 b-number 中节点的边的节点:

      a_number         b_number
0   0123456789343   0123456789991
1   0123456789343   0123456789633
2   0123456789343   0123456789633
3   0123456789343   0123456789628
4   0123456789343   0123456789633
... ... ...
3789    0123456789697   0123456789916
3790    0123456789697   0123456789886
3791    0123456789697   0123456789572
3792    0123456789697   0123456789884
3793    0123456789697   0123456789125
3794 rows × 2 columns

附加信息:

len(df['a_number'].unique())
>>> 18

len(df['b_number'].unique())
>>>1145

我正在尝试生成图形的图像表示。这是应用networkx的代码:

import networkx as nx
G = nx.DiGraph()

for  i, (x, y) in df.iterrows():
    G.add_node(x)
    G.add_node(y)
    G.add_edge(x,y)
    
nx.draw(G, with_labels = True, font_size=14 , node_size=2000)

问题是,如果我只想从a_number 列中的相同值到b_number 列中可视化图表,例如:

第一张图

       a_number        b_number
0   0123456789343   0123456789991
1   0123456789343   0123456789633
2   0123456789343   0123456789633
3   0123456789343   0123456789628
4   0123456789343   0123456789633

下一张图

          a_number       b_number
3789    0123456789697   0123456789916
3790    0123456789697   0123456789886
3791    0123456789697   0123456789572
3792    0123456789697   0123456789884
3793    0123456789697   0123456789125

请指教。我可以对代码做什么?谢谢。

【问题讨论】:

    标签: python graph networkx graphviz


    【解决方案1】:

    你可以遍历'a_number'的所有值:

    import networkx as nx
    import pandas as pd
    
    a_values = df['a_number'].unique()
    
    for a_value in a_values:
        df_temp = df[df['a_number'] == a_value]
       
        G = nx.DiGraph()
        
        for  i, (x, y) in df_temp.iterrows():
            G.add_node(x)
            G.add_node(y)
            G.add_edge(x,y)
        
        nx.draw(G, with_labels = True, font_size=14 , node_size=2000)
        --- save and close plot ---
    

    【讨论】:

      猜你喜欢
      • 2011-04-16
      • 2016-01-22
      • 1970-01-01
      • 1970-01-01
      • 2016-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      相关资源
      最近更新 更多