从数据框中的相同值可视化网络图
Visualizing Network plot from the same value in dataframe
假设我有这个数据框 df
,其中包含 3794 行 x 2 列,其中列 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
请指教。我可以对代码做什么?谢谢。
您可以遍历 '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 ---
假设我有这个数据框 df
,其中包含 3794 行 x 2 列,其中列 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
请指教。我可以对代码做什么?谢谢。
您可以遍历 '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 ---