最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python?gravis庫(kù)實(shí)現(xiàn)圖形數(shù)據(jù)可視化實(shí)例探索

 更新時(shí)間:2024年02月01日 10:12:12   作者:小寒聊python  
這篇文章主要為大家介紹了python?gravis庫(kù)實(shí)現(xiàn)圖形數(shù)據(jù)可視化實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

python gravis庫(kù)

今天給大家分享一個(gè)神奇的 python 庫(kù),gravis

gravis(Graph Visualization Software)是一個(gè)用于圖形數(shù)據(jù)可視化的 Python 庫(kù)。它專注于提供一個(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 生成的圖形可視化通常是交互式的,這使用戶可以通過(guò)縮放、平移、懸停等操作來(lái)更好地探索圖形。

  • 可定制性,提供了許多定制選項(xiàng),比如節(jié)點(diǎn)和邊的樣式、布局算法的選擇等,使用戶可以根據(jù)需求調(diào)整可視化的外觀和行為。

  • 多種輸出格式,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)文章!

相關(guān)文章

最新評(píng)論

大姚县| 象州县| 武安市| 武邑县| 白水县| 拜泉县| 海南省| 鄢陵县| 新巴尔虎左旗| 双牌县| 且末县| 阳高县| 大丰市| 鹤峰县| 长乐市| 安阳县| 新田县| 台湾省| 板桥市| 辉南县| 肥乡县| 宣武区| 文登市| 蓬安县| 荥经县| 大足县| 桂林市| 汶上县| 长海县| 阿克陶县| 大安市| 墨竹工卡县| 龙陵县| 安乡县| 诸暨市| 成武县| 环江| 田林县| 乌审旗| 西充县| 靖宇县|