Python利用D3Blocks繪制可動(dòng)態(tài)交互的圖表
今天小編給大家來介紹一款十分好用的可視化模塊,D3Blocks,不僅可以用來繪制可動(dòng)態(tài)交互的圖表,并且導(dǎo)出的圖表可以是HTML格式,方便在瀏覽器上面呈現(xiàn)。

熱力圖
熱力圖是一種通過對色塊著色來顯示數(shù)據(jù)的統(tǒng)計(jì)圖表。繪圖時(shí)需要指定顏色映射的規(guī)則。例如較大的值由較深的顏色表示,而較小的值由較淺的顏色表示等等。熱力圖適用于查看總體的情況,發(fā)現(xiàn)異常值、顯示多個(gè)變量之間的差異,以及檢測它們之間是否存在任何相關(guān)性。
我們這里來嘗試?yán)L制一張簡單的熱力圖,代碼如下
from d3blocks import D3Blocks
# 初始化
d3 = D3Blocks()
# 導(dǎo)入數(shù)據(jù)集
df = d3.import_example('energy')
# 繪制熱力圖
d3.heatmap(df, showfig=True, stroke='red', vmax=10, figsize=(700,700))output

粒子圖
在D3Blocks模塊當(dāng)?shù)?code>particles()方法可以方便我們將任何字體轉(zhuǎn)換成帶有動(dòng)態(tài)效果的粒子圖,跟隨著鼠標(biāo)的移動(dòng),圖表中的元素也會(huì)動(dòng)態(tài)的起伏飛舞,代碼如下
# 導(dǎo)入模塊
from d3blocks import D3Blocks
# 初始化
d3 = D3Blocks()
# 繪制粒子圖
d3.particles('D3Blocks', collision=0.05, spacing=10, figsize=[1200, 500])output

時(shí)間序列圖
時(shí)間序列的折線圖,又被稱為是趨勢圖,是以時(shí)間為橫軸,觀察變量為縱軸,用來反映時(shí)間與數(shù)量之間的關(guān)系,這里我們調(diào)用的是timeseries()方法,代碼如下
# 導(dǎo)入模塊
from d3blocks import D3Blocks
# 初始化
d3 = D3Blocks()
# 導(dǎo)入數(shù)據(jù)集
df = d3.import_example('climate')
# 打印出前面5行
print(df.head())
# 繪制圖表
d3.timeseries(df, datetime='date', dt_format='%Y-%m-%d %H:%M:%S', fontsize=10)output

?;鶊D
?;鶊D是用于描述一組值到另一組值的流向的圖表。在圖表的內(nèi)部,不同的線條代表了不同的流量分流情況,線條的寬度代表此分值所代表的數(shù)據(jù)大小。通常用于能源、材料成分、金融等數(shù)據(jù)的可視化分析。這里我們調(diào)用的是sankey()方法來實(shí)現(xiàn),代碼如下
from d3blocks import D3Blocks
# 初始化
d3 = D3Blocks()
# 導(dǎo)入數(shù)據(jù)集
df = d3.import_example('energy')
# 繪制圖表
d3.sankey(df, link={"color": "source-target"})output

小提琴圖
小提琴圖可以用來繪制數(shù)據(jù)的分布以及其概率密度,針對的是數(shù)值型的變量,這種圖表結(jié)合了箱型圖和密度圖的特征,主要用來顯示數(shù)據(jù)的分布形狀。這里我們調(diào)用violin()方法來實(shí)現(xiàn),代碼如下
# 導(dǎo)入模塊
from d3blocks import D3Blocks
# 初始化
d3 = D3Blocks()
# 導(dǎo)入數(shù)據(jù)集
df = d3.import_example('cancer')
# 顯示的格式
tooltip = df['labels'].values + ' <br /> Survival: ' + df['survival_months'].astype(str).values
# 可視化圖表
d3.violin(x=df['labels'].values, # X軸上的值
y=df['age'].values, # 年齡
tooltip=tooltip, # 顯示的格式
bins=50, # bins的大小
size=df['survival_months'].values/10, # 點(diǎn)狀的大小
x_order=['acc', 'kich', 'brca', 'lgg', 'blca', 'coad', 'ov'], # X軸的上的值
figsize=[None, None], # 圖表的大小
filepath='violine_demo.html')output

散點(diǎn)圖
散點(diǎn)圖通常用于查看X軸與Y軸之間是否有關(guān)聯(lián),它的繪制,我們這里調(diào)用的是scatter()方法,代碼如下
# 導(dǎo)入模塊
from d3blocks import D3Blocks
# 初始化
d3 = D3Blocks()
# 導(dǎo)入數(shù)據(jù)集
df = d3.import_example('cancer')
# 顯示數(shù)據(jù)的格式
tooltip=df['labels'].values + ' <br /> Survival: ' + df['survival_months'].astype(str).str[0:4].values
# 散點(diǎn)的大小
size = df['survival_months'].fillna(1).values / 10
# 繪制圖表
d3.scatter(df['x'].values,
df['y'].values,
x1=df['PC1'].values,
y1=df['PC2'].values,
scale=True,
label_radio=['tSNE', 'PCA'], # 不同標(biāo)簽的種類
size=size,
color=df['labels'].values,
stroke='#000000',
opacity=0.4, # 透明度
tooltip=tooltip, # 顯示的格式
cmap='tab20', # 顏色
filepath='c://temp//scatter_demo.html')output

弦圖
弦圖是一種顯示數(shù)據(jù)矩陣中內(nèi)部數(shù)據(jù)之間相互關(guān)系的圖形可視化方法。在弦圖內(nèi),數(shù)據(jù)圍繞一個(gè)圓呈放射狀排列,數(shù)據(jù)點(diǎn)之間的關(guān)系通常繪制為連接數(shù)據(jù)的圓弧。這里我們調(diào)用chord()方法來實(shí)現(xiàn),代碼如下
from d3blocks import D3Blocks
# 初始化
d3 = D3Blocks()
# 導(dǎo)入數(shù)據(jù)集
df = d3.import_example('energy')
# 繪制圖表
d3.chord(df, filepath='chord_demo.html')output

網(wǎng)絡(luò)圖
除了上面這幾種圖表之外,D3Blocks模塊還可以來繪制社交網(wǎng)絡(luò)圖,這里用到的是d3graph()方法,代碼如下
from d3blocks import D3Blocks
# 初始化
d3 = D3Blocks()
# 導(dǎo)入數(shù)據(jù)集
df = d3.import_example('energy')
# 打印出前5行數(shù)據(jù)
print(df)
# 初始化網(wǎng)絡(luò)圖
d3.d3graph(df, showfig=False)
# 每個(gè)節(jié)點(diǎn)打上顏色
d3.D3graph.set_node_properties(color='cluster')
# 調(diào)整每個(gè)節(jié)點(diǎn)的位置
d3.D3graph.node_properties['Thermal_generation']['size']=20
d3.D3graph.node_properties['Thermal_generation']['edge_color']='#000fff' # 藍(lán)色的節(jié)點(diǎn)
d3.D3graph.node_properties['Thermal_generation']['edge_size']=3 # Node-edge Size
# 調(diào)整每個(gè)連線的位置
d3.D3graph.edge_properties['Solar', 'Solar_Thermal']['color']='#000fff'
d3.D3graph.edge_properties['Solar', 'Solar_Thermal']['weight_scaled']=10
# 繪制圖表
d3.D3graph.show()output

以上就是Python利用D3Blocks繪制可動(dòng)態(tài)交互的圖表的詳細(xì)內(nèi)容,更多關(guān)于Python D3Blocks圖表的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
pandas重復(fù)行刪除操作df.drop_duplicates和df.duplicated的區(qū)別
本文主要介紹了pandas重復(fù)行刪除操作df.drop_duplicates和df.duplicated的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
4種非常實(shí)用的python內(nèi)置數(shù)據(jù)結(jié)構(gòu)
這篇文章主要介紹了4種非常實(shí)用的python內(nèi)置數(shù)據(jù)結(jié)構(gòu),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04
500行代碼使用python寫個(gè)微信小游戲飛機(jī)大戰(zhàn)游戲
這篇文章主要介紹了500行代碼使用python寫個(gè)微信小游戲飛機(jī)大戰(zhàn)游戲,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10
Python實(shí)現(xiàn)UDP與TCP通信的示例詳解
UDP是一種無連接的、不可靠的傳輸協(xié)議;TCP是一種可靠的、面向連接的傳輸協(xié)議。這篇文章主要介紹了Python實(shí)現(xiàn)UDP與TCP通信的方法,需要的可以參考一下2023-03-03
Tensorflow中tf.ConfigProto()的用法詳解
今天小編就為大家分享一篇Tensorflow中tf.ConfigProto()的用法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
Python實(shí)現(xiàn)PowerPoint演示文稿到圖片的批量轉(zhuǎn)換
PowerPoint演示文稿作為展示創(chuàng)意、分享知識(shí)和表達(dá)觀點(diǎn)的重要工具,被廣泛應(yīng)用于教育、商務(wù)匯報(bào)及個(gè)人項(xiàng)目展示等領(lǐng)域,用Python代碼可以高效地實(shí)現(xiàn)PowerPoint演示文稿到圖片的批量轉(zhuǎn)換,從而提升工作效率,文本將介紹如何使用Python實(shí)現(xiàn)PowerPoint演示文稿到圖片的轉(zhuǎn)換2024-06-06
pandas創(chuàng)建series的三種方法小結(jié)
這篇文章主要介紹了pandas創(chuàng)建series的三種方法小結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
Python之ReportLab繪制條形碼和二維碼的實(shí)例
下面小編就為大家分享一篇Python之ReportLab繪制條形碼和二維碼的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01
關(guān)于Python去除字符串中空格的方法總結(jié)
用Python處理字符串時(shí)會(huì)經(jīng)常要去掉字符串首、尾或者中間的空白,以得到我們想要的結(jié)果,下面這篇文章主要給大家介紹了關(guān)于Python去除字符串中空格的相關(guān)資料,需要的朋友可以參考下2022-12-12

