詳解Python中四種關(guān)系圖數(shù)據(jù)可視化的效果對(duì)比
python關(guān)系圖的可視化主要就是用來(lái)分析一堆數(shù)據(jù)中,每一條數(shù)據(jù)的節(jié)點(diǎn)之間的連接關(guān)系從而更好的分析出人物或其他場(chǎng)景中存在的關(guān)聯(lián)關(guān)系。
這里使用的是networkx的python非標(biāo)準(zhǔn)庫(kù)來(lái)測(cè)試效果展示,通過(guò)模擬出一組DataFrame數(shù)據(jù)實(shí)現(xiàn)四種關(guān)系圖可視化。
其余還包含了pandas的數(shù)據(jù)分析模塊以及matplotlib的畫(huà)圖模塊。
若是沒(méi)有安裝這三個(gè)相關(guān)的非標(biāo)準(zhǔn)庫(kù)使用pip的方式安裝一下即可。
pip?install?pandas?-i?https://pypi.tuna.tsinghua.edu.cn/simple/ pip?install?matplotlib?-i?https://pypi.tuna.tsinghua.edu.cn/simple/ pip?install?networkx?-i?https://pypi.tuna.tsinghua.edu.cn/simple/
分別將使用到的python模塊導(dǎo)入到我們的代碼塊中,就可以開(kāi)始開(kāi)發(fā)了。
#?Importing?the?matplotlib.pyplot?module?as?plt. import?matplotlib.pyplot?as?plt #?Importing?the?pandas?module?and?giving?it?the?alias?pd. import?pandas?as?pd
這里為了避免中文亂碼的情況,分別對(duì)字體和編碼進(jìn)行了統(tǒng)一化的設(shè)置處理。
plt.rcParams["font.sans-serif"]?=?["SimHei"] plt.rcParams["axes.unicode_minus"]?=?False #?Importing?the?networkx?module?and?giving?it?the?alias?nx. import?networkx?as?nx
這里我們采用了有向圖的模式來(lái)進(jìn)行演示,有向圖也是在生產(chǎn)過(guò)程中最常用的一種可視化模式。
G?=?nx.DiGraph()?#?創(chuàng)建有向圖
初始化一個(gè)DataFrame數(shù)據(jù)對(duì)象作為關(guān)系圖生成的數(shù)據(jù)來(lái)源。
data_frame?=?pd.DataFrame( ????{ ????????'A':?['1',?'2',?'3',?'4',?'5',?'6'], ????????'B':?['a',?'b',?'c',?'d',?'e',?'f'], ????????'C':?[1,?2,?3,?4,?5,?6] ????} )
1、隨機(jī)分布模型
使用隨機(jī)分布模型的生成規(guī)則時(shí),生成的數(shù)據(jù)節(jié)點(diǎn)會(huì)采用隨機(jī)的方式進(jìn)行展示,生成的數(shù)據(jù)節(jié)點(diǎn)之間相對(duì)比較分散更容易觀察數(shù)據(jù)節(jié)點(diǎn)之間的關(guān)系指向。
for?i,?row?in?data_frame.iterrows(): ????G.add_edge(row['A'],?row['B'],?weight=row['C']) pos?=?nx.random_layout(G) nx.draw(G,?pos,?with_labels=True,?alpha=0.7) labels?=?nx.get_edge_attributes(G,?'weight') nx.draw_networkx_edge_labels(G,?pos,?edge_labels=labels) plt.axis('equal') plt.show()
通過(guò)matplotlib展示出圖形效果如下,并且默認(rèn)已經(jīng)添加了數(shù)據(jù)權(quán)重。
2、放射數(shù)據(jù)模型
放射狀數(shù)據(jù)模型,顧名思義就是以一個(gè)數(shù)據(jù)節(jié)點(diǎn)為中心向周邊以發(fā)散狀的模式進(jìn)行分布,使用數(shù)據(jù)節(jié)點(diǎn)指向多個(gè)節(jié)點(diǎn)的可視化展示。
缺點(diǎn)是如果數(shù)據(jù)不夠規(guī)范的情況下會(huì)展示成一團(tuán)亂麻的情況,需要經(jīng)過(guò)特殊的可視化處理。
使用方法這里直接將上述隨機(jī)分布模型的pos模型直接替換成下面的放射狀數(shù)據(jù)模型即可。
pos?=?nx.spring_layout(G,?seed=4000,?k=2)
3、其他模型
其余兩種方式使用同樣的方式將隨機(jī)分布模型中pos模型進(jìn)行替換即可實(shí)現(xiàn),這里分別展示以下實(shí)現(xiàn)效果。
特征值向量模型
pos?=?nx.spectral_layout(G)
圖形邊緣化分布模型
pos?=?nx.shell_layout(G)
到此這篇關(guān)于詳解Python中四種關(guān)系圖數(shù)據(jù)可視化的效果對(duì)比的文章就介紹到這了,更多相關(guān)Python關(guān)系圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python辦公自動(dòng)化之?dāng)?shù)據(jù)可視化與報(bào)表生成
- python數(shù)據(jù)可視化自制職位分析生成崗位分析數(shù)據(jù)報(bào)表
- Python對(duì)中國(guó)500強(qiáng)排行榜數(shù)據(jù)進(jìn)行可視化分析實(shí)戰(zhàn)
- 使用Python對(duì)網(wǎng)易云歌單數(shù)據(jù)分析及可視化
- 使用Python進(jìn)行數(shù)據(jù)可視化
- Python實(shí)現(xiàn)數(shù)據(jù)可視化大屏布局的示例詳解
- Python報(bào)表自動(dòng)化之從數(shù)據(jù)到可視化一站式指南
相關(guān)文章
使用python實(shí)現(xiàn)strcmp函數(shù)功能示例
這篇文章主要介紹了使用python實(shí)現(xiàn)strcmp函數(shù)功能的示例,需要的朋友可以參考下2014-03-03python?argparse的使用步驟(全網(wǎng)最全)
argparse是python的一個(gè)命令行參數(shù)解析包,在代碼需要頻繁修改參數(shù)時(shí),方便使用,主要用法就是在命令行輸入自己想要修改的參數(shù),這篇文章主要介紹了python?argparse的使用步驟(全網(wǎng)最全),需要的朋友可以參考下2023-04-04python如何將多個(gè)模型的ROC曲線繪制在一張圖(含圖例)
這篇文章主要給大家介紹了關(guān)于python如何將多個(gè)模型的ROC曲線繪制在一張圖的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02pyinstaller生成的exe文件啟動(dòng)時(shí)間漫長(zhǎng)的原因
本文主要介紹了pyinstaller生成的exe文件啟動(dòng)時(shí)間漫長(zhǎng)的原因,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01Python實(shí)現(xiàn)的對(duì)本地host127.0.0.1主機(jī)進(jìn)行掃描端口功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的對(duì)本地host127.0.0.1主機(jī)進(jìn)行掃描端口功能,可實(shí)現(xiàn)掃描本機(jī)開(kāi)放端口的功能,涉及Python socket模塊與Thread多線程模塊相關(guān)使用技巧,需要的朋友可以參考下2019-02-02詳解Pandas如何高效對(duì)比處理DataFrame的兩列數(shù)據(jù)
我們?cè)谟?pandas?處理數(shù)據(jù)的時(shí)候,經(jīng)常會(huì)遇到用其中一列數(shù)據(jù)替換另一列數(shù)據(jù)的場(chǎng)景。這一類(lèi)的需求估計(jì)很多人都遇到,當(dāng)然還有其它更復(fù)雜的。解決這類(lèi)需求的辦法有很多,這里我們來(lái)推薦幾個(gè)2022-09-09Python 腳本實(shí)現(xiàn)淘寶準(zhǔn)點(diǎn)秒殺功能
這篇文章主要介紹了python實(shí)現(xiàn)淘寶準(zhǔn)點(diǎn)秒殺腳本,本文圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11Python制作動(dòng)態(tài)詞頻條形圖的全過(guò)程
說(shuō)起動(dòng)態(tài)圖表,最火的莫過(guò)于動(dòng)態(tài)條形圖了,下面這篇文章主要給大家介紹了關(guān)于Python制作動(dòng)態(tài)詞頻條形圖的全過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-11-11python人工智能tensorflow函數(shù)np.random模塊使用
這篇文章主要為大家介紹了python人工智能tensorflow函數(shù)np.random模塊使用方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05