溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python關(guān)系圖數(shù)據(jù)可視化效果有哪些

發(fā)布時(shí)間:2022-11-29 09:44:31 來(lái)源:億速云 閱讀:141 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹“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)重。

Python關(guān)系圖數(shù)據(jù)可視化效果有哪些

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)

Python關(guān)系圖數(shù)據(jù)可視化效果有哪些

3、其他模型

其余兩種方式使用同樣的方式將隨機(jī)分布模型中pos模型進(jìn)行替換即可實(shí)現(xiàn),這里分別展示以下實(shí)現(xiàn)效果。

特征值向量模型

pos = nx.spectral_layout(G)

Python關(guān)系圖數(shù)據(jù)可視化效果有哪些

圖形邊緣化分布模型

pos = nx.shell_layout(G)

Python關(guān)系圖數(shù)據(jù)可視化效果有哪些

到此,關(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í)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI