您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python關(guān)系圖數(shù)據(jù)可視化效果有哪些”,在日常操作中,相信很多人在Python關(guān)系圖數(shù)據(jù)可視化效果有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”P(pán)ython關(guān)系圖數(shù)據(jù)可視化效果有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
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ù)可視化效果有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。