溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python如何利用D3Blocks繪制可動(dòng)態(tài)交互的圖表

發(fā)布時(shí)間:2023-02-07 10:00:21 來源:億速云 閱讀:185 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“Python如何利用D3Blocks繪制可動(dòng)態(tài)交互的圖表”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Python如何利用D3Blocks繪制可動(dòng)態(tài)交互的圖表”吧!

熱力圖

熱力圖是一種通過對(duì)色塊著色來顯示數(shù)據(jù)的統(tǒng)計(jì)圖表。繪圖時(shí)需要指定顏色映射的規(guī)則。例如較大的值由較深的顏色表示,而較小的值由較淺的顏色表示等等。熱力圖適用于查看總體的情況,發(fā)現(xiàn)異常值、顯示多個(gè)變量之間的差異,以及檢測(cè)它們之間是否存在任何相關(guān)性。

我們這里來嘗試?yán)L制一張簡(jiǎn)單的熱力圖,代碼如下

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

Python如何利用D3Blocks繪制可動(dòng)態(tài)交互的圖表

粒子圖

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

Python如何利用D3Blocks繪制可動(dòng)態(tài)交互的圖表

時(shí)間序列圖

時(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

Python如何利用D3Blocks繪制可動(dòng)態(tài)交互的圖表

桑基圖

?;鶊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

Python如何利用D3Blocks繪制可動(dòng)態(tài)交互的圖表

小提琴圖

小提琴圖可以用來繪制數(shù)據(jù)的分布以及其概率密度,針對(duì)的是數(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

Python如何利用D3Blocks繪制可動(dòng)態(tài)交互的圖表

散點(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

Python如何利用D3Blocks繪制可動(dòng)態(tài)交互的圖表

弦圖

弦圖是一種顯示數(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')

網(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)交互的圖表

到此,相信大家對(duì)“Python如何利用D3Blocks繪制可動(dòng)態(tài)交互的圖表”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI