python?gravis庫(kù)實(shí)現(xiàn)圖形數(shù)據(jù)可視化實(shí)例探索
python gravis庫(kù)
今天給大家分享一個(gè)神奇的 python 庫(kù),gravis
gravis(Graph Visualization Software)是一個(gè)用于圖形數(shù)據(jù)可視化的 Python 庫(kù)。它專(zhuān)注于提供一個(gè)簡(jiǎn)單、高效、可定制的方式來(lái)展示和探索圖形數(shù)據(jù)。
它使用 Python 來(lái)準(zhǔn)備圖形數(shù)據(jù)并使用 Web 技術(shù) (HTML/CSS/JS) 來(lái)呈現(xiàn)圖形數(shù)據(jù),主要基于 JavaScript 庫(kù) d3.js、 vis.js 和 3d-force-graph.js/ Three.js。結(jié)果可以顯示在 Web 瀏覽器窗口中、嵌入 Jupyter Notebook 中、導(dǎo)出到獨(dú)立的 HTML 文件或在 Web 應(yīng)用程序中作為 HTML 文本使用。還支持以 JPG、PNG 和 SVG 格式導(dǎo)出靜態(tài)圖像。

gravis 庫(kù)的一些主要特點(diǎn)
易用性,它提供了一個(gè)簡(jiǎn)潔的API來(lái)創(chuàng)建和操作圖形可視化。
與其他圖形庫(kù)兼容,gravis 可以與其他流行的圖形處理庫(kù)(如 NetworkX、igraph 等)結(jié)合使用。這意味著你可以用這些庫(kù)來(lái)創(chuàng)建和處理圖形,然后使用 gravis 來(lái)進(jìn)行可視化。
交互性,gravis 生成的圖形可視化通常是交互式的,這使用戶(hù)可以通過(guò)縮放、平移、懸停等操作來(lái)更好地探索圖形。
可定制性,提供了許多定制選項(xiàng),比如節(jié)點(diǎn)和邊的樣式、布局算法的選擇等,使用戶(hù)可以根據(jù)需求調(diào)整可視化的外觀(guān)和行為。
多種輸出格式,gravis 支持多種輸出格式,包括在 Jupyter Notebook 中直接顯示,或者導(dǎo)出為 HTML 文件、圖片等。
庫(kù)的安裝
可以直接通過(guò) pip 進(jìn)行安裝。
pip install gravis
圖形生成器
這里,我們使用 nx.dual_barabasi_albert_graph 來(lái)生成包含 30 個(gè)節(jié)點(diǎn)的隨機(jī)圖,然后分別對(duì)結(jié)點(diǎn)和邊添加一些屬性。
import uuid
import networkx as nx
def get_new_test_graph():
NUM_NODES = 30
p = 0.5
seed = 1
test_graph = nx.dual_barabasi_albert_graph(n=NUM_NODES, p=p, seed=seed, m1=2, m2=1)
# add node properties
nx.set_node_attributes(test_graph, dict(test_graph.degree()), name='degree')
nx.set_node_attributes(test_graph, nx.betweenness_centrality(test_graph), name='betweenness_centrality')
for node, data in test_graph.nodes(data=True):
data['node_identifier'] = str(uuid.uuid4())
data['feature1'] = np.random.random()
data['feature2'] = np.random.randint(0, high=100)
data['feature3'] = 1 if np.random.random() > 0.5 else 0
# add edge properties
for _, _, data in test_graph.edges(data=True):
data['feature1'] = np.random.random()
data['feature2'] = np.random.randint(0, high=100)
return test_graph當(dāng)我們使用 networkx 繪制圖表時(shí),我們得到以下結(jié)果。
test_graph = get_new_test_graph() nx.draw(test_graph)

使用 gravis 畫(huà)圖
import gravis as gv
gv.d3(
test_graph,
# graph specs
graph_height=500,
# node specs
node_size_data_source="betweenness_centrality",
use_node_size_normalization=True,
node_size_normalization_min=15,
node_size_normalization_max=35,
show_node_label=True,
node_label_data_source='node_identifier',
# edge specs
edge_size_data_source='feature1',
use_edge_size_normalization=True,
edge_size_normalization_min=1,
edge_size_normalization_max=5,
# force-directed graph specs
many_body_force_strength=-500
)
以上就是python gravis庫(kù)實(shí)現(xiàn)圖形數(shù)據(jù)可視化實(shí)例探索的詳細(xì)內(nèi)容,更多關(guān)于python gravis庫(kù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- python?AutoViz庫(kù)一行代碼實(shí)現(xiàn)可視化數(shù)據(jù)集
- python可視化數(shù)據(jù)分析pyecharts初步嘗試
- Python?VisPy庫(kù)高性能科學(xué)可視化圖形處理用法實(shí)例探究
- Python pydotplus安裝及可視化圖形創(chuàng)建教程
- python Dtale庫(kù)交互式數(shù)據(jù)探索分析和可視化界面
- python?Sweetviz探索性數(shù)據(jù)可視化分析庫(kù)使用特征詳解
- Python mplfinance庫(kù)繪制金融圖表實(shí)現(xiàn)數(shù)據(jù)可視化實(shí)例探究
- python?pyvis庫(kù)創(chuàng)建可視化交互式網(wǎng)絡(luò)圖
相關(guān)文章
基于Python實(shí)現(xiàn)浪漫的彈窗祝福滿(mǎn)屏飄字效果(附完整代碼)
這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)浪漫的彈窗祝福滿(mǎn)屏飄字效果,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解下2026-01-01
利用python生成一個(gè)導(dǎo)出數(shù)據(jù)庫(kù)的bat腳本文件的方法
下面小編就為大家?guī)?lái)一篇利用python生成一個(gè)導(dǎo)出數(shù)據(jù)庫(kù)的bat腳本文件的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12
Python實(shí)現(xiàn)在tkinter中使用matplotlib繪制圖形的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)在tkinter中使用matplotlib繪制圖形的方法,結(jié)合實(shí)例形式分析了Python使用tkinter與matplotlib進(jìn)行正弦曲線(xiàn)圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
python實(shí)現(xiàn)去除空格及tab換行符的方法
這篇文章主要為大家介紹了python實(shí)現(xiàn)去除空格及tab換行符的方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
利用Python實(shí)現(xiàn)K-Means聚類(lèi)的方法實(shí)例(案例:用戶(hù)分類(lèi))
k-means是發(fā)現(xiàn)給定數(shù)據(jù)集的k個(gè)簇的算法,也就是將數(shù)據(jù)集聚合為k類(lèi)的算法,下面這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)K-Means聚類(lèi)的相關(guān)資料,需要的朋友可以參考下2022-05-05
Python報(bào)錯(cuò)error: subprocess-exited-with-error解決辦法
在Python開(kāi)發(fā)中,遇到subprocess-exited-with-error通常是由依賴(lài)缺失、權(quán)限問(wèn)題、環(huán)境配置錯(cuò)誤或兼容性問(wèn)題導(dǎo)致,修復(fù)方法包括安裝依賴(lài)、使用虛擬環(huán)境、提升權(quán)限、檢查路徑和命令,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10
Opencv中的cv2.calcHist()函數(shù)的作用及返回值說(shuō)明
這篇文章主要介紹了Opencv中的cv2.calcHist()函數(shù)的作用及返回值說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

