又一款超炫酷的Python動態數據可視化工具!
在Python的數據可視化領域中,諸如Matplotlib、Seaborn、Bokeh、Plotly以及Pyecharts等庫以其豐富的圖形展示能力和美學設計深受開發者喜愛。但在滿足日益增長的動態與交互式數據探索需求方面,部分庫的功能顯得相對有限。
D3blocks作為一款動態交互式數據可視化工具,它不僅繼承了現有庫們強大的視覺表現力,更以實時更新和用戶深度交互為核心特色,有效彌補了市場上的這一空缺。
D3blocks安裝
pip install d3blocks
D3blocks使用
D3Blocks目前囊括了一系列創新且功能豐富的動態交互式圖表模塊。這些模塊包括:時間序列圖(Timeseries)、和弦圖(Chord)、彈性圖(Elasticgraph)、?;鶊D(Sankey)、熱力圖(Heatmap)等。
1.時間序列圖(Timeseries)
下面這段代碼展示了如何利用D3Blocks進行時間序列數據的繪制:
# 導入D3Blocks庫
from d3blocks import D3Blocks
# 創建D3Blocks對象實例
d3 = D3Blocks()
# 加載示例數據集(此處為氣候相關數據)
df = d3.import_example('climate')
# 調用timeseries方法來繪制時間序列圖表
d3.timeseries(df, datetime='date', dt_format='%Y-%m-%d %H:%M:%S', fontsize=10, figsize=[850, 500])
執行上述代碼后,D3Blocks將會基于給定的數據幀df中的日期時間信息生成一個高度交互且視覺效果出眾的時間序列圖表。如下圖所示。
2.和弦圖(Chord)
下面這段代碼展示了如何利用D3Blocks進行和弦圖的繪制:
from d3blocks import D3Blocks
# 創建D3Blocks對象實例
d3 = D3Blocks()
# 加載內置的數據示例
df = d3.import_example('energy')
# 調用chord方法來繪制和弦圖
d3.chord(df)
3.D3graph
D3graph是一個動態可交互的關系網圖,可以設置每個節點的顏色,以及大小,甚至可以在關系網上添加箭頭。下面這段代碼展示了如何利用D3Blocks進行D3graph的繪制:
# 導入D3Blocks庫并創建一個實例
from d3blocks import D3Blocks
d3 = D3Blocks()
# 加載內置的'energy'數據集作為示例數據
df = d3.import_example('energy')
# 使用d3graph方法繪制自定義D3圖形,并將結果保存為HTML文件 'd3graph.html'
d3.d3graph(df, filepath='d3graph.html')
# 設置圖形縮放方式為minmax歸一化(默認可能為其他縮放方法)
d3.d3graph(df, scaler='minmax')
# 調整D3圖形節點屬性設置,先重置顏色為None(不指定顏色)
d3.D3graph.set_node_properties(color=None)
# 設置'Solar'大小為30
d3.D3graph.node_properties['Solar']['size'] = 30
# 設置'Solar'顏色為紅色
d3.D3graph.node_properties['Solar']['color'] = '#FF0000'
# 設置節點'Solar'的邊顏色為黑色
d3.D3graph.node_properties['Solar']['edge_color'] = '#000000'
# 設置節點'Solar'的邊線寬為5
d3.D3graph.node_properties['Solar']['edge_size'] = 5
# 顯示已修改節點屬性后的D3圖形
d3.D3graph.show()
# 設置D3圖形中邊的屬性:設為有向圖,并且箭頭終點樣式為常規箭頭
d3.D3graph.set_edge_properties(directed=True, marker_end='arrow')
# 顯示應用了新邊屬性后的D3圖形
d3.D3graph.show()
# 查看當前D3圖形的所有節點屬性設置
node_props = d3.D3graph.node_properties
# 查看當前D3圖形的所有邊屬性設置
edge_props = d3.D3graph.edge_properties
# 最后再次顯示D3圖形,以確認所有設置是否生效
d3.D3graph.show()
4.Elasticgraph
Elasticgraph類似電子原子核的結構,關聯每個數據,且數據可以進行細節參考,雙擊每個節點,就會展開各個數據。
# 導入D3Blocks庫并創建一個實例
from d3blocks import D3Blocks
# 創建D3Blocks對象實例
d3 = D3Blocks()
# 加載內置的'energy'數據集
df = d3.import_example('energy')
# 使用elasticgraph方法繪制彈性圖,并將結果保存為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()
# 查看并輸出當前彈性圖中所有節點的屬性設置
node_props = d3.Elasticgraph.D3graph.node_properties
# 查看并輸出當前彈性圖中所有邊的屬性設置
edge_props = d3.Elasticgraph.D3graph.edge_properties
5.Heatmap
下面這段代碼展示了如何利用D3Blocks進行熱力圖的繪制:
# 導入D3Blocks庫并創建一個實例
from d3blocks import D3Blocks
d3 = D3Blocks()
# 加載內置的'stormofswords'數據集
df = d3.import_example('stormofswords')
# 使用heatmap方法繪制熱力圖
d3.heatmap(df)
圖片