圖鄰接矩陣可視化解析
使用工具
#導(dǎo)入模塊 import networkx as nx import numpy as np import matplotlib.pyplot as plt import scipy.sparse as sp
準(zhǔn)備數(shù)據(jù)
# 鄰接矩陣
Matrix = np.array(
[
[0, 1, 1, 1, 1, 1, 0, 0], # a
[0, 0, 1, 0, 1, 0, 0, 0], # b
[0, 0, 0, 1, 0, 0, 0, 0], # c
[0, 0, 0, 0, 1, 0, 0, 0], # d
[0, 0, 0, 0, 0, 1, 0, 0], # e
[0, 0, 1, 0, 0, 0, 1, 1], # f
[0, 0, 0, 0, 0, 1, 0, 1], # g
[0, 0, 0, 0, 0, 1, 1, 0] # h
]
)
轉(zhuǎn)化臨界矩陣
def get_matrix_triad(coo_matrix , data=False): ''' 獲取矩陣的元組表示 (row,col) data 為 True 時(shí) (row,col,data) :dependent scipy :param coo_matrix: 三元組表示的稀疏矩陣 類型可以為 numpy.ndarray :param data: 是否需要 data值 :return: list ''' # 檢查類型 if not sp.isspmatrix_coo(coo_matrix): # 轉(zhuǎn)化為三元組表示的稀疏矩陣 coo_matrix = sp.coo_matrix(coo_matrix) # nx3的矩陣 列分別為 矩陣行,矩陣列及對(duì)應(yīng)的矩陣值 temp = np.vstack((coo_matrix.row , coo_matrix.col , coo_matrix.data)).transpose() return temp.tolist()
測試
edags = get_matrix_triad(Matrix) --> [[0.0, 0.0, 1.0], [0.0, 1.0, 1.0], [0.0, 2.0, 1.0], [0.0, 3.0, 1.0], [0.0, 4.0, 1.0], [0.0, 5.0, 1.0], [1.0, 1.0, 1.0], [1.0, 2.0, 1.0], [1.0, 4.0, 1.0], [2.0, 2.0, 1.0], [2.0, 3.0, 1.0], [3.0, 3.0, 1.0], [3.0, 4.0, 1.0], [4.0, 4.0, 1.0], [4.0, 5.0, 1.0], [5.0, 2.0, 1.0], [5.0, 5.0, 1.0], [5.0, 6.0, 1.0], [5.0, 7.0, 1.0], [6.0, 5.0, 1.0], [6.0, 6.0, 1.0], [6.0, 7.0, 1.0], [7.0, 5.0, 1.0], [7.0, 6.0, 1.0], [7.0, 7.0, 1.0]]
創(chuàng)建圖
# 創(chuàng)建一個(gè)沒有邊,沒有節(jié)點(diǎn)的空?qǐng)DGraph G = nx.Graph()
添加節(jié)點(diǎn)
按照節(jié)點(diǎn)的個(gè)數(shù)添加節(jié)點(diǎn)
H = nx.path_graph(Matrix.shape[0]) G.add_nodes_from(H)
添加邊
G.add_edges_from(edags) #添加邊 # 若數(shù)據(jù)含有權(quán)重,及 get_matrix_triad() 中 data = True ,則使用 G.add_weighted_edges_from(edags)
繪圖
colors = np.arange(Matrix.shape[0]) nx.draw(G,pos=nx.spring_layout(G),node_color=colors) plt.show()

擴(kuò)展
美化圖
合理使用**draw_networkx ()**中的參數(shù),來美化圖
draw_networkx()
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python逆向微信指數(shù)爬取實(shí)現(xiàn)步驟
這篇文章主要為大家介紹了python逆向微信指數(shù)爬取的實(shí)現(xiàn)步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-02-02
Python中plt.scatter()函數(shù)的常見用法小結(jié)
這篇文章主要介紹了Python中plt.scatter()函數(shù)的常見用法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
pytorch利用Dataset讀取數(shù)據(jù)報(bào)錯(cuò)問題及解決
這篇文章主要介紹了pytorch利用Dataset讀取數(shù)據(jù)報(bào)錯(cuò)問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Python搭建代理IP池實(shí)現(xiàn)接口設(shè)置與整體調(diào)度
這篇文章主要介紹了Python搭建代理IP池實(shí)現(xiàn)接口設(shè)置與整體調(diào)度,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
用ReactJS和Python的Flask框架編寫留言板的代碼示例
這篇文章主要介紹了用ReactJS和Python的Flask框架編寫留言板的代碼示例,其他的話用到了MongoDB這個(gè)方便使用JavaScript來操作的數(shù)據(jù)庫,需要的朋友可以參考下2015-12-12
Python基于paramiko庫操作遠(yuǎn)程服務(wù)器的實(shí)現(xiàn)
本文主要介紹了使用Python的Paramiko庫來操作遠(yuǎn)程服務(wù)器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01

