又一款超炫酷的Python動態(tài)數(shù)據(jù)可視化工具!
在Python的數(shù)據(jù)可視化領(lǐng)域中,諸如Matplotlib、Seaborn、Bokeh、Plotly以及Pyecharts等庫以其豐富的圖形展示能力和美學(xué)設(shè)計深受開發(fā)者喜愛。但在滿足日益增長的動態(tài)與交互式數(shù)據(jù)探索需求方面,部分庫的功能顯得相對有限。
D3blocks作為一款動態(tài)交互式數(shù)據(jù)可視化工具,它不僅繼承了現(xiàn)有庫們強(qiáng)大的視覺表現(xiàn)力,更以實時更新和用戶深度交互為核心特色,有效彌補(bǔ)了市場上的這一空缺。

D3blocks安裝
pip install d3blocksD3blocks使用
D3Blocks目前囊括了一系列創(chuàng)新且功能豐富的動態(tài)交互式圖表模塊。這些模塊包括:時間序列圖(Timeseries)、和弦圖(Chord)、彈性圖(Elasticgraph)、?;鶊D(Sankey)、熱力圖(Heatmap)等。
1.時間序列圖(Timeseries)
下面這段代碼展示了如何利用D3Blocks進(jìn)行時間序列數(shù)據(jù)的繪制:
# 導(dǎo)入D3Blocks庫
from d3blocks import D3Blocks
# 創(chuàng)建D3Blocks對象實例
d3 = D3Blocks()
# 加載示例數(shù)據(jù)集(此處為氣候相關(guān)數(shù)據(jù))
df = d3.import_example('climate')
# 調(diào)用timeseries方法來繪制時間序列圖表
d3.timeseries(df, datetime='date', dt_format='%Y-%m-%d %H:%M:%S', fontsize=10, figsize=[850, 500])執(zhí)行上述代碼后,D3Blocks將會基于給定的數(shù)據(jù)幀df中的日期時間信息生成一個高度交互且視覺效果出眾的時間序列圖表。如下圖所示。

2.和弦圖(Chord)
下面這段代碼展示了如何利用D3Blocks進(jìn)行和弦圖的繪制:
from d3blocks import D3Blocks
# 創(chuàng)建D3Blocks對象實例
d3 = D3Blocks()
# 加載內(nèi)置的數(shù)據(jù)示例
df = d3.import_example('energy')
# 調(diào)用chord方法來繪制和弦圖
d3.chord(df)
3.D3graph
D3graph是一個動態(tài)可交互的關(guān)系網(wǎng)圖,可以設(shè)置每個節(jié)點的顏色,以及大小,甚至可以在關(guān)系網(wǎng)上添加箭頭。下面這段代碼展示了如何利用D3Blocks進(jìn)行D3graph的繪制:
# 導(dǎo)入D3Blocks庫并創(chuàng)建一個實例
from d3blocks import D3Blocks
d3 = 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é)點屬性設(shè)置,先重置顏色為None(不指定顏色)
d3.D3graph.set_node_properties(color=None)
# 設(shè)置'Solar'大小為30
d3.D3graph.node_properties['Solar']['size'] = 30
# 設(shè)置'Solar'顏色為紅色
d3.D3graph.node_properties['Solar']['color'] = '#FF0000'
# 設(shè)置節(jié)點'Solar'的邊顏色為黑色
d3.D3graph.node_properties['Solar']['edge_color'] = '#000000'
# 設(shè)置節(jié)點'Solar'的邊線寬為5
d3.D3graph.node_properties['Solar']['edge_size'] = 5
# 顯示已修改節(jié)點屬性后的D3圖形
d3.D3graph.show()
# 設(shè)置D3圖形中邊的屬性:設(shè)為有向圖,并且箭頭終點樣式為常規(guī)箭頭
d3.D3graph.set_edge_properties(directed=True, marker_end='arrow')
# 顯示應(yīng)用了新邊屬性后的D3圖形
d3.D3graph.show()
# 查看當(dāng)前D3圖形的所有節(jié)點屬性設(shè)置
node_props = d3.D3graph.node_properties
# 查看當(dāng)前D3圖形的所有邊屬性設(shè)置
edge_props = d3.D3graph.edge_properties
# 最后再次顯示D3圖形,以確認(rèn)所有設(shè)置是否生效
d3.D3graph.show()
4.Elasticgraph
Elasticgraph類似電子原子核的結(jié)構(gòu),關(guān)聯(lián)每個數(shù)據(jù),且數(shù)據(jù)可以進(jìn)行細(xì)節(jié)參考,雙擊每個節(jié)點,就會展開各個數(shù)據(jù)。
# 導(dǎo)入D3Blocks庫并創(chuàng)建一個實例
from d3blocks import D3Blocks
# 創(chuàng)建D3Blocks對象實例
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é)點的屬性設(shè)置
node_props = d3.Elasticgraph.D3graph.node_properties
# 查看并輸出當(dāng)前彈性圖中所有邊的屬性設(shè)置
edge_props = d3.Elasticgraph.D3graph.edge_properties
5.Heatmap
下面這段代碼展示了如何利用D3Blocks進(jìn)行熱力圖的繪制:
# 導(dǎo)入D3Blocks庫并創(chuàng)建一個實例
from d3blocks import D3Blocks
d3 = D3Blocks()
# 加載內(nèi)置的'stormofswords'數(shù)據(jù)集
df = d3.import_example('stormofswords')
# 使用heatmap方法繪制熱力圖
d3.heatmap(df)
圖片






































