利用Python繪制Jazz網(wǎng)絡(luò)圖的例子
最近在進(jìn)行社交網(wǎng)絡(luò)的學(xué)習(xí),想利用Python來(lái)進(jìn)行分析,但是網(wǎng)上關(guān)于這方面的資料好像很少,所以自己進(jìn)行了一點(diǎn)研究,算是有一點(diǎn)點(diǎn)進(jìn)步,現(xiàn)在將自己的成果發(fā)出來(lái),希望這方面感興趣的同學(xué)也可以快速入門。話不多說(shuō),讓我們開(kāi)始吧~
1:環(huán)境準(zhǔn)備
首先,就是python以及一些插件的安裝,比如我們要用到numpy(為Python提供了真正的數(shù)組功能,好多庫(kù)都依賴它,優(yōu)先安裝,安裝教程百度一下,你就知道~),matplotlib(最著名的的繪圖庫(kù),主要用于二維繪圖,也可以進(jìn)行簡(jiǎn)單的三維繪圖),networkx(是一個(gè)用Python語(yǔ)言開(kāi)發(fā)的圖論與復(fù)雜網(wǎng)絡(luò)建模工具,內(nèi)置了常用的圖與復(fù)雜網(wǎng)絡(luò)分析算法,可以方便的進(jìn)行復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)分析、仿真建模等工作),以上就是編程的準(zhǔn)備工作。
2:獲取數(shù)據(jù)
環(huán)境準(zhǔn)備好了之后,就需要獲得數(shù)據(jù),本文中的數(shù)據(jù)是Jazz網(wǎng)絡(luò):該網(wǎng)絡(luò)為爵士音樂(lè)人合作網(wǎng)絡(luò),網(wǎng)絡(luò)中的節(jié)點(diǎn)代表音樂(lè)人,節(jié)點(diǎn)之間的鏈接代表音樂(lè)人之間的合作關(guān)系。
*Vertices 198 *Arcs *Edges 1 8 1 1 24 1 1 35 1 1 42 1
第一行數(shù)據(jù)代表:第一個(gè)音樂(lè)人與第八個(gè)音樂(lè)人之間有一個(gè)合作關(guān)系,第三列的1為具有合作關(guān)系,以此類推。
3:開(kāi)始開(kāi)始編程
import networkx as nx
import matplotlib.pyplot as plt
import numpy as np
import re
#讀取txt文件數(shù)據(jù),有多個(gè)空格間隔
G=nx.Graph()
filename = r'D:\MyDocuments\jazz.txt'
node_list = []
lnum = 0
with open(filename, 'r') as file_to_read:
while True:
lines = file_to_read.readline() # 整行讀取數(shù)據(jù)
if not lines:
break
pass
lnum += 1
#從第四行開(kāi)始處理數(shù)據(jù)
if lnum>=4:
#對(duì)多的空格進(jìn)行處理
temp = ' '.join(re.split(' +|\n+', lines)).strip()
line=re.split(' ',temp.strip())
#獲得第一個(gè)節(jié)點(diǎn)
first_node = line[0]
#獲得第二個(gè)節(jié)點(diǎn)
second_node = line[1]
node_list.append(np.append(first_node,second_node))
pass
for i in range(len(node_list)):
G.add_edge(node_list[i][0],node_list[i][1])
nx.draw(G)
plt.show()#顯示圖形
4:運(yùn)行結(jié)果

5:總結(jié)
以上只是簡(jiǎn)單的將Jazz網(wǎng)絡(luò)及關(guān)系繪制出來(lái),并沒(méi)有進(jìn)行深入的分析,如果有不對(duì)的地方,還希望大家批評(píng)指正。
相關(guān)文章
Python高級(jí)技巧之利用psutil和subprocess實(shí)現(xiàn)程序監(jiān)控與管理
本文介紹了如何使用Python的psutil和subprocess模塊監(jiān)控程序運(yùn)行狀態(tài),并提供了一個(gè)案例腳本,用于監(jiān)控目標(biāo)程序并在停止時(shí)自動(dòng)重啟,詳細(xì)介紹了subprocess模塊的基本用法和psutil模塊的系統(tǒng)信息獲取、進(jìn)程管理及資源監(jiān)控功能,需要的朋友可以參考下2024-09-09
基于python實(shí)現(xiàn)雪花算法過(guò)程詳解
這篇文章主要介紹了基于python實(shí)現(xiàn)雪花算法過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Python中實(shí)現(xiàn)傳遞未知數(shù)量的函數(shù)參數(shù)
這篇文章主要介紹了Python中實(shí)現(xiàn)傳遞未知數(shù)量的函數(shù)參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
使用Anaconda創(chuàng)建Pytorch虛擬環(huán)境的排坑詳細(xì)教程
PyTorch是一個(gè)開(kāi)源的Python機(jī)器學(xué)習(xí)庫(kù),基于Torch,用于自然語(yǔ)言處理等應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于使用Anaconda創(chuàng)建Pytorch虛擬環(huán)境的相關(guān)資料,需要的朋友可以參考下2022-12-12
python3+PyQt5實(shí)現(xiàn)自定義流體混合窗口部件
這篇文章主要為大家詳細(xì)介紹了python3+PyQt5實(shí)現(xiàn)自定義流體混合窗口部件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
Python中enumerate函數(shù)及其應(yīng)用詳解
在 Python 編程中,enumerate 函數(shù)是一個(gè)非常實(shí)用的工具,它能夠?qū)⒁粋€(gè)可迭代對(duì)象組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),這種功能在處理列表、元組、字符串等可迭代對(duì)象時(shí)非常有用,尤其是在需要同時(shí)獲取每個(gè)元素的索引和值的情況下,需要的朋友可以參考下2025-01-01
tensorflow saver 保存和恢復(fù)指定 tensor的實(shí)例講解
今天小編就為大家分享一篇tensorflow saver 保存和恢復(fù)指定 tensor的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Python推導(dǎo)式之字典推導(dǎo)式和集合推導(dǎo)式使用體驗(yàn)
這篇文章主要為大家介紹了Python推導(dǎo)式之字典推導(dǎo)式和集合推導(dǎo)式使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06

