今天我們來學習一下如何使用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參數用於設置在扇形上的具體數值
其他參數跟之前的圖例基本類似
今天就到這里,謝謝各位點贊支持!!