Python使用Pyecharts繪制精美餅狀圖的示例代碼
Pyecharts 簡介
Pyecharts 是一個基于 ECharts 的 Python 數(shù)據(jù)可視化庫,它能夠幫助用戶輕松創(chuàng)建各種交互式圖表。作為 ECharts 的 Python 接口,Pyecharts 繼承了 ECharts 強大的可視化能力,同時提供了 Python 友好的 API 設(shè)計,使得數(shù)據(jù)科學(xué)家和分析師能夠快速構(gòu)建專業(yè)級的數(shù)據(jù)可視化作品。
Pyecharts 的核心優(yōu)勢在于:
- 豐富的圖表類型:支持超過 30 種常見圖表類型,包括折線圖、柱狀圖、餅圖、散點圖、地圖等
- 高度可定制化:幾乎每個圖表元素都可以自定義,從顏色、字體到交互行為
- 交互式體驗:原生支持縮放、拖拽、懸停提示等交互功能
- 多種輸出格式:可輸出為 HTML、圖片或 Jupyter Notebook 內(nèi)嵌展示
- 簡潔的 API:采用鏈式調(diào)用設(shè)計,代碼直觀易讀
餅狀圖是數(shù)據(jù)可視化中展示比例關(guān)系的經(jīng)典圖表。本文將基于 Pyecharts 展示多種餅狀圖的繪制方法,包括基礎(chǔ)餅圖、南丁格爾玫瑰圖等高級形式,并提供完整的代碼示例和效果展示。
基礎(chǔ)餅狀圖
展示高中同學(xué)職業(yè)分布的比例關(guān)系:
from pyecharts import options as opts from pyecharts.charts import Pie categories = ['程序員','教師','醫(yī)生','護士','警察','老板','律師','翻譯','運動員'] values = [18, 5, 3, 4, 8, 2, 2, 5, 1] pie = ( Pie() .add('高中同學(xué)職業(yè)占比', list(zip(categories, values))) .set_global_opts(title_opts=opts.TitleOpts(title="職業(yè)分布")) .set_series_opts(label_opts=opts.LabelOpts(formatter=": {c}")) ) pie.render_notebook()
效果特點:
- 清晰展示各職業(yè)占比
- 懸浮顯示具體數(shù)值
- 交互式圖例開關(guān)
調(diào)整圖例位置
當圖例項較多時,優(yōu)化圖例位置可提升可讀性:
pie = ( Pie() .add('職業(yè)占比', list(zip(categories, values))) .set_global_opts( title_opts=opts.TitleOpts(title="優(yōu)化圖例位置"), legend_opts=opts.LegendOpts(pos_left="25%") # 圖例左移 ) )
關(guān)鍵參數(shù):
pos_left
/pos_right
:控制水平位置pos_top
/pos_bottom
:控制垂直位置orient
:圖例方向(horizontal/vertical)
自定義顏色方案
為不同職業(yè)分配特定顏色:
custom_colors = ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22"] pie = ( Pie() .add('職業(yè)占比', list(zip(categories, values))) .set_colors(custom_colors) # 應(yīng)用自定義顏色 )
南丁格爾玫瑰圖
用半徑長度反映數(shù)值大小的玫瑰圖:
pie = ( Pie() .add( series_name='職業(yè)占比', data_pair=list(zip(categories, values)), rosetype="radius", # 半徑模式 radius="85%", # 圖表大小 label_opts=opts.LabelOpts(is_show=False) ) .set_global_opts(legend_opts=opts.LegendOpts(is_show=False)) )
玫瑰圖模式說明:
radius
:半徑反映數(shù)值大小area
:所有扇形角度相同,僅半徑不同
滾動圖例
當分類過多時使用滾動圖例:
pie = ( Pie() .add('職業(yè)占比', list(zip(categories, values))) .set_global_opts( legend_opts=opts.LegendOpts( type_="scroll", # 滾動模式 pos_left="80%", # 右側(cè)放置 orient="vertical" # 垂直方向 ) ) )
雙玫瑰圖對比
在同一畫布展示兩種玫瑰圖類型:
pie = ( Pie() .add("", list(zip(categories, values)), radius=["30%", "75%"], center=["25%", "50%"], # 左側(cè)圖表 rosetype="radius") # 半徑模式 .add("", list(zip(categories, values)), radius=["30%", "75%"], center=["75%", "50%"], # 右側(cè)圖表 rosetype="area") # 面積模式 )
對比效果:
- 左圖:半徑+角度雙重編碼
- 右圖:僅半徑編碼數(shù)據(jù)
給讀者的學(xué)習(xí)建議
1. 學(xué)習(xí)路徑規(guī)劃
對于 Pyecharts 的學(xué)習(xí),建議按照以下路徑循序漸進:
初級階段(1-2周):
- 掌握基礎(chǔ)圖表(柱狀圖、折線圖、餅圖)的繪制
- 了解全局配置項和系列配置項的區(qū)別
- 熟悉常見樣式設(shè)置(顏色、標題、圖例等)
中級階段(2-4周):
- 學(xué)習(xí)組合圖表(如折線+柱狀圖)的繪制
- 掌握地圖和地理坐標系的用法
- 了解數(shù)據(jù)預(yù)處理與 Pyecharts 的結(jié)合
高級階段(1個月以上):
- 研究自定義主題和擴展組件
- 學(xué)習(xí)與 Web 框架(如 Flask、Django)的集成
- 探索大數(shù)據(jù)量下的性能優(yōu)化
以上就是Python使用Pyecharts繪制精美餅狀圖的示例代碼的詳細內(nèi)容,更多關(guān)于Python Pyecharts繪制餅狀圖的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
一文詳解Python中Reduce函數(shù)輕松解決復(fù)雜數(shù)據(jù)聚合
這篇文章主要為大家介紹了Python中Reduce函數(shù)輕松解決復(fù)雜數(shù)據(jù)聚合示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08詳解python3 + Scrapy爬蟲學(xué)習(xí)之創(chuàng)建項目
這篇文章主要介紹了python3 Scrapy爬蟲創(chuàng)建項目,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04python按鍵按住不放持續(xù)響應(yīng)的實例代碼
今天小編就為大家分享一篇python按鍵按住不放持續(xù)響應(yīng)的實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07python使用循環(huán)打印所有三位數(shù)水仙花數(shù)的實例
今天小編就為大家分享一篇python使用循環(huán)打印所有三位數(shù)水仙花數(shù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python+Selenium使用Page Object實現(xiàn)頁面自動化測試
這篇文章主要介紹了Python+Selenium使用Page Object實現(xiàn)頁面自動化測試,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07在PyCharm中實現(xiàn)關(guān)閉一個死循環(huán)程序的方法
今天小編就為大家分享一篇在PyCharm中實現(xiàn)關(guān)閉一個死循環(huán)程序的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11