Python使用Pyecharts繪制精美餅狀圖的示例代碼
Pyecharts 簡介
Pyecharts 是一個基于 ECharts 的 Python 數(shù)據(jù)可視化庫,它能夠幫助用戶輕松創(chuàng)建各種交互式圖表。作為 ECharts 的 Python 接口,Pyecharts 繼承了 ECharts 強大的可視化能力,同時提供了 Python 友好的 API 設計,使得數(shù)據(jù)科學家和分析師能夠快速構建專業(yè)級的數(shù)據(jù)可視化作品。
Pyecharts 的核心優(yōu)勢在于:
- 豐富的圖表類型:支持超過 30 種常見圖表類型,包括折線圖、柱狀圖、餅圖、散點圖、地圖等
- 高度可定制化:幾乎每個圖表元素都可以自定義,從顏色、字體到交互行為
- 交互式體驗:原生支持縮放、拖拽、懸停提示等交互功能
- 多種輸出格式:可輸出為 HTML、圖片或 Jupyter Notebook 內(nèi)嵌展示
- 簡潔的 API:采用鏈式調(diào)用設計,代碼直觀易讀
餅狀圖是數(shù)據(jù)可視化中展示比例關系的經(jīng)典圖表。本文將基于 Pyecharts 展示多種餅狀圖的繪制方法,包括基礎餅圖、南丁格爾玫瑰圖等高級形式,并提供完整的代碼示例和效果展示。
基礎餅狀圖
展示高中同學職業(yè)分布的比例關系:
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('高中同學職業(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ù)值
- 交互式圖例開關
調(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%") # 圖例左移
)
)關鍵參數(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) # 應用自定義顏色
)南丁格爾玫瑰圖
用半徑長度反映數(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ù)
給讀者的學習建議
1. 學習路徑規(guī)劃
對于 Pyecharts 的學習,建議按照以下路徑循序漸進:
初級階段(1-2周):
- 掌握基礎圖表(柱狀圖、折線圖、餅圖)的繪制
- 了解全局配置項和系列配置項的區(qū)別
- 熟悉常見樣式設置(顏色、標題、圖例等)
中級階段(2-4周):
- 學習組合圖表(如折線+柱狀圖)的繪制
- 掌握地圖和地理坐標系的用法
- 了解數(shù)據(jù)預處理與 Pyecharts 的結合
高級階段(1個月以上):
- 研究自定義主題和擴展組件
- 學習與 Web 框架(如 Flask、Django)的集成
- 探索大數(shù)據(jù)量下的性能優(yōu)化
以上就是Python使用Pyecharts繪制精美餅狀圖的示例代碼的詳細內(nèi)容,更多關于Python Pyecharts繪制餅狀圖的資料請關注腳本之家其它相關文章!
相關文章
一文詳解Python中Reduce函數(shù)輕松解決復雜數(shù)據(jù)聚合
這篇文章主要為大家介紹了Python中Reduce函數(shù)輕松解決復雜數(shù)據(jù)聚合示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08
詳解python3 + Scrapy爬蟲學習之創(chuàng)建項目
這篇文章主要介紹了python3 Scrapy爬蟲創(chuàng)建項目,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
python使用循環(huán)打印所有三位數(shù)水仙花數(shù)的實例
今天小編就為大家分享一篇python使用循環(huán)打印所有三位數(shù)水仙花數(shù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
Python+Selenium使用Page Object實現(xiàn)頁面自動化測試
這篇文章主要介紹了Python+Selenium使用Page Object實現(xiàn)頁面自動化測試,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07
在PyCharm中實現(xiàn)關閉一個死循環(huán)程序的方法
今天小編就為大家分享一篇在PyCharm中實現(xiàn)關閉一個死循環(huán)程序的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11

