1、載入networkx包
import networkx as nx
2、創建網絡
2.1 創建空的無向圖
G = nx.Graph()
2.2 添加兩類節點
#分別用不同顏色表示兩類節點
for item in list_user1:
G.add_node(item,node_color = "b")
for item in list_user2:
G.add_node(item,node_color = "r")
2.3 添加邊
從一個dataframe中讀取數據,對應的兩列應該生成對應的邊,添加邊。
for i in range(len(df_question_test)):
user_id_temp = df_question_test.loc[i,"user1"]
doctor_id_temp = df_question_test.loc[i,"user2"]
G.add_edge(user_id_temp,doctor_id_temp)
2.4 查看網絡節點和邊的數量
print(G.number_of_edges())
print(G.number_of_nodes())
3、網絡可視化
pos=nx.spring_layout(G)
nx.draw_networkx_nodes(G,pos,nodelist=list_user1, node_color="b",node_size = 5)
nx.draw_networkx_nodes(G,pos, nodelist=list_user2, node_color="r",node_size = 5)
nx.draw_networkx_edges(G,pos)
結果圖:
其中的spring_layout表示佈局,樣子爲放射狀,如果修改爲circular_layout,表示節點在一個圓環上均勻分佈,如下圖:
修改爲random_layout,則:
以上爲本人學習使用筆記,如有錯誤,歡迎批評指正。