Python使用Plotly繪圖工具,繪制餅圖


今天我們來學習一下如何使用Python的Plotly繪圖工具,繪制餅圖

使用Plotly繪制餅圖的方法,我們需要使用graph_objs中的Pie函數

函數中最常用的兩個屬性values,用於賦值給需要可視化的數據

另外一個屬性labels則是表示不同數據所對應的標簽

我們先看一個例子

import plotly as py
import plotly.graph_objs as go

pyplt = py.offline.plot
labels = ['產品1','產品2','產品3','產品4','產品5']
values = [38.7,15.33,19.9,8.6,17.47]
trace = [go.Pie(labels=labels, values=values)]
layout = go.Layout(
    title = '產品比例配比圖',
)
fig = go.Figure(data = trace, layout = layout)
pyplt(fig, filename='tmp/1.html')

 

import plotly as py
import plotly.graph_objs as go

pyplt = py.offline.plot
labels = ['完成','未完成']
values = [0.8,0.2]
trace = [go.Pie(
    labels = labels, 
    values = values, 
    hole =  0.7,
    hoverinfo = "label + percent")]
layout = go.Layout(
    title = '產品完成進度圖'
)
fig = go.Figure(data = trace, layout = layout)
pyplt(fig, filename='tmp/1.html')

 

通過運行上訴代碼,我們可以得到如上圖所示的餅狀結構圖

這里樣式的設置與我之前寫的幾篇博客中圖形的樣式設置類似

我這里就不在重復講了。

下面說下如何繪制環形餅狀圖,只需要在Pie函數中設置控制環形中心空白大小的范圍即可

import plotly as py
import plotly.graph_objs as go

pyplt = py.offline.plot
labels = ['完成','未完成']
values = [0.8,0.2]
trace = [go.Pie(
    labels = labels, 
    values = values, 
    hole =  0.7,
    hoverinfo = "label + percent")]
layout = go.Layout(
    title = '產品完成進度圖'
)
fig = go.Figure(data = trace, layout = layout)
pyplt(fig, filename='tmp/1.html')

 

 

 

通過運行上訴代碼,得到如上圖所示環形餅狀圖

hole屬性即是控制空白大小的屬性

而在Pie函數中,hoverinfo屬性用於控制用戶鼠標指針放到環形圖上時顯示的內容

設置為lable+percent,表示標簽加數據所占用的比例

 對於餅狀圖的樣式設置說明

import plotly as py
import plotly.graph_objs as go

pyplt = py.offline.plot
labels = ['產品1', '產品2',
 '產品3', '產品4', '產品5']
values = [30, 25, 15, 22, 8]
colors = ['#FFFF00', '#FF0000', '#E066FF', '#0D0D0D']

trace = [go.Pie(labels = labels, 
                values = values,
                rotation = 30,
                opacity = 1,
                showlegend = False,
                pull = [0.1,0,0,0,0],
                hoverinfo = 'label+percent', 
                textinfo = 'percent', # textinfo = 'value',
                textfont = dict(size = 30, color = 'white'),
                marker = dict(colors = colors, 
                    line = dict(color = '#000000', width = 2)))]
fig = go.Figure(data = trace)
pyplt(trace, filename='tmp/1.html')

 

 

 

 運行上訴代碼,可以得到如上圖所示圖例

rotation參數可以對餅圖進行旋轉,其取值為0-360

showlegend布爾型,True表示展示,False表示隱藏

pull參數設置餅圖的各個扇形的突出程度。

textinfo參數用於設置在扇形上的具體數值

其他參數跟之前的圖例基本類似

 今天就到這里,謝謝各位點贊支持!! 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM