在Python的數(shù)據(jù)可視化領(lǐng)域中,諸如Matplotlib、Seaborn、Bokeh、Plotly以及Pyecharts等庫(kù)以其豐富的圖形展示能力和美學(xué)設(shè)計(jì)深受開發(fā)者喜愛。但在滿足日益增長(zhǎng)的動(dòng)態(tài)與交互式數(shù)據(jù)探索需求方面,部分庫(kù)的功能顯得相對(duì)有限。
D3blocks作為一款動(dòng)態(tài)交互式數(shù)據(jù)可視化工具,它不僅繼承了現(xiàn)有庫(kù)們強(qiáng)大的視覺表現(xiàn)力,更以實(shí)時(shí)更新和用戶深度交互為核心特色,有效彌補(bǔ)了市場(chǎng)上的這一空缺。
pip install d3blocks
D3Blocks目前囊括了一系列創(chuàng)新且功能豐富的動(dòng)態(tài)交互式圖表模塊。這些模塊包括:時(shí)間序列圖(Timeseries)、和弦圖(Chord)、彈性圖(Elasticgraph)、桑基圖(Sankey)、熱力圖(Heatmap)等。
下面這段代碼展示了如何利用D3Blocks進(jìn)行時(shí)間序列數(shù)據(jù)的繪制:
# 導(dǎo)入D3Blocks庫(kù)from d3blocks import D3Blocks# 創(chuàng)建D3Blocks對(duì)象實(shí)例d3 = D3Blocks()# 加載示例數(shù)據(jù)集(此處為氣候相關(guān)數(shù)據(jù))df = d3.import_example('climate')# 調(diào)用timeseries方法來繪制時(shí)間序列圖表d3.timeseries(df, datetime='date', dt_format='%Y-%m-%d %H:%M:%S', fontsize=10, figsize=[850, 500])
執(zhí)行上述代碼后,D3Blocks將會(huì)基于給定的數(shù)據(jù)幀df中的日期時(shí)間信息生成一個(gè)高度交互且視覺效果出眾的時(shí)間序列圖表。如下圖所示。
下面這段代碼展示了如何利用D3Blocks進(jìn)行和弦圖的繪制:
from d3blocks import D3Blocks# 創(chuàng)建D3Blocks對(duì)象實(shí)例d3 = D3Blocks()# 加載內(nèi)置的數(shù)據(jù)示例df = d3.import_example('energy')# 調(diào)用chord方法來繪制和弦圖d3.chord(df)
D3graph是一個(gè)動(dòng)態(tài)可交互的關(guān)系網(wǎng)圖,可以設(shè)置每個(gè)節(jié)點(diǎn)的顏色,以及大小,甚至可以在關(guān)系網(wǎng)上添加箭頭。下面這段代碼展示了如何利用D3Blocks進(jìn)行D3graph的繪制:
# 導(dǎo)入D3Blocks庫(kù)并創(chuàng)建一個(gè)實(shí)例from d3blocks import D3Blocksd3 = D3Blocks()# 加載內(nèi)置的'energy'數(shù)據(jù)集作為示例數(shù)據(jù)df = d3.import_example('energy')# 使用d3graph方法繪制自定義D3圖形,并將結(jié)果保存為HTML文件 'd3graph.html'd3.d3graph(df, filepath='d3graph.html')# 設(shè)置圖形縮放方式為minmax歸一化(默認(rèn)可能為其他縮放方法)d3.d3graph(df, scaler='minmax')# 調(diào)整D3圖形節(jié)點(diǎn)屬性設(shè)置,先重置顏色為None(不指定顏色)d3.D3graph.set_node_properties(color=None)# 設(shè)置'Solar'大小為30d3.D3graph.node_properties['Solar']['size'] = 30# 設(shè)置'Solar'顏色為紅色d3.D3graph.node_properties['Solar']['color'] = '#FF0000'# 設(shè)置節(jié)點(diǎn)'Solar'的邊顏色為黑色d3.D3graph.node_properties['Solar']['edge_color'] = '#000000'# 設(shè)置節(jié)點(diǎn)'Solar'的邊線寬為5d3.D3graph.node_properties['Solar']['edge_size'] = 5# 顯示已修改節(jié)點(diǎn)屬性后的D3圖形d3.D3graph.show()# 設(shè)置D3圖形中邊的屬性:設(shè)為有向圖,并且箭頭終點(diǎn)樣式為常規(guī)箭頭d3.D3graph.set_edge_properties(directed=True, marker_end='arrow')# 顯示應(yīng)用了新邊屬性后的D3圖形d3.D3graph.show()# 查看當(dāng)前D3圖形的所有節(jié)點(diǎn)屬性設(shè)置node_props = d3.D3graph.node_properties# 查看當(dāng)前D3圖形的所有邊屬性設(shè)置edge_props = d3.D3graph.edge_properties# 最后再次顯示D3圖形,以確認(rèn)所有設(shè)置是否生效d3.D3graph.show()
Elasticgraph類似電子原子核的結(jié)構(gòu),關(guān)聯(lián)每個(gè)數(shù)據(jù),且數(shù)據(jù)可以進(jìn)行細(xì)節(jié)參考,雙擊每個(gè)節(jié)點(diǎn),就會(huì)展開各個(gè)數(shù)據(jù)。
# 導(dǎo)入D3Blocks庫(kù)并創(chuàng)建一個(gè)實(shí)例from d3blocks import D3Blocks# 創(chuàng)建D3Blocks對(duì)象實(shí)例d3 = D3Blocks()# 加載內(nèi)置的'energy'數(shù)據(jù)集df = d3.import_example('energy')# 使用elasticgraph方法繪制彈性圖,并將結(jié)果保存為HTML文件 'Elasticgraph.html'd3.elasticgraph(df, filepath='Elasticgraph.html')# 顯示生成的彈性圖d3.Elasticgraph.show() # 顯示嵌套的D3圖形d3.Elasticgraph.D3graph.show()# 顯示彈性圖d3.Elasticgraph.show()# 顯示嵌套的D3圖形d3.Elasticgraph.D3graph.show()# 查看并輸出當(dāng)前彈性圖中所有節(jié)點(diǎn)的屬性設(shè)置node_props = d3.Elasticgraph.D3graph.node_properties# 查看并輸出當(dāng)前彈性圖中所有邊的屬性設(shè)置edge_props = d3.Elasticgraph.D3graph.edge_properties
下面這段代碼展示了如何利用D3Blocks進(jìn)行熱力圖的繪制:
# 導(dǎo)入D3Blocks庫(kù)并創(chuàng)建一個(gè)實(shí)例from d3blocks import D3Blocksd3 = D3Blocks()# 加載內(nèi)置的'stormofswords'數(shù)據(jù)集df = d3.import_example('stormofswords')# 使用heatmap方法繪制熱力圖d3.heatmap(df)
圖片
本文鏈接:http://www.www897cc.com/showinfo-26-75376-0.html又一款超炫酷的Python動(dòng)態(tài)數(shù)據(jù)可視化工具!
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com
上一篇: C/C++循環(huán)結(jié)構(gòu):do{} while()和while() do{}的區(qū)別