Python+matplotlib如何实现饼图的绘制
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍Python+matplotlib如何实现饼图的绘制,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、整理数据关于cnboo1.xlsx,我放在我的码云里,需要
千家信息网最后更新 2026年11月03日Python+matplotlib如何实现饼图的绘制
这篇文章主要介绍Python+matplotlib如何实现饼图的绘制,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
一、整理数据
关于cnboo1.xlsx,我放在我的码云里,需要的朋友自行下载:cnboo1.xlsx
films=['穿过寒冬拥抱你','反贪风暴5:最终章','李茂扮太子','误杀2','以年为单位的恋爱','黑客帝国:矩阵重启','雄狮少年','魔法满屋','汪汪队立大功大电影','爱情神话']regions=['中国','英国','澳大利亚','美国','美国','中国','英国','澳大利亚','美国','美国']bos=['61,181','44,303','42,439','22,984','13,979','61,181','44,303','41,439','20,984','19,979']persons=['31','23','56','17','9','31','23','56','17','9']prices=['51','43','56','57','49','51','43','56','57','49']showdate=['2022-12-03','2022-12-05','2022-12-01','2022-12-02','2022-11-05','2022-12-03','2022-12-05','2022-12-01','2022-12-02','2022-11-05']ftypes=['剧情','动作','喜剧','剧情','剧情','爱情','动作','动画','动画','动画']points=['8.1','9.0','7.9','6.7','3.8','8.1','9.0','7.9','6.7','3.8']filmdescript={ 'ftypes':ftypes, 'bos':bos, 'prices':prices, 'persons':persons, 'regions':regions, 'showdate':showdate, 'points':points}import numpy as npimport pandas as pdcnbo2021top5=pd.DataFrame(filmdescript,index=films)cnbo2021top5[['prices','persons']]=cnbo2021top5[['prices','persons']].astype(int)cnbo2021top5['bos']=cnbo2021top5['bos'].str.replace(',','').astype(int)cnbo2021top5['showdate']=cnbo2021top5['showdate'].astype('datetime64')cnbo2021top5['points']=cnbo2021top5['points'].apply(lambda x:float(x) if x!='' else 0)import pandas as pd cnbodf=pd.read_excel('cnboo1.xlsx')cnbodfsort=cnbodf.sort_values(by=['BO'],ascending=False)cnbodfsort.index=cnbodfsort.TYPEbo=cnbo2021top5.bos.sort_values()def mkpoints(x,y): return len(str(x))*(y/25)-3cnbodfsort['points']=cnbodfsort.apply(lambda x:mkpoints(x.BO,x.PERSONS),axis=1)
cnbodfsort['type1']=cnbodfsort['TYPE'].apply(lambda x:x.split("/")[0])cnbodfgb=cnbodfsort.groupby(["type1"])["ID","BO","PRICE","PERSONS","points"].mean()cnbodfgbsort=cnbodfgb.sort_values("BO",ascending=False)二、创建饼图
from matplotlib import pyplot as plt plt.style.use('seaborn')plt.figure(figsize=(15,9))plt.rcParams.update({'font.family': "Microsoft YaHei"})plt.title("中国票房2021TOP9") plt.pie(cnbodfgbsort.BO,labels=cnbodfgbsort.index)plt.show()这里涉及到简历的漫画效果:详情请访问:为图表添加漫画效果
三、爆炸效果
# 爆炸效果 饼图脱离from matplotlib import pyplot as plt explo=[0.3,0,0,0,0,0] # 控制爆炸效果,通过更改参数控制距离的长短plt.style.use('seaborn')plt.figure(figsize=(15,9))plt.rcParams.update({'font.family': "Microsoft YaHei"})plt.title("中国票房2021TOP9") plt.pie(cnbodfgbsort.BO,labels=cnbodfgbsort.index,explode=explo)plt.show()
四、阴影效果
# 添加阴影效果# 爆炸效果 饼图脱离from matplotlib import pyplot as plt explo=[0.3,0,0,0,0,0] # 控制爆炸效果plt.style.use('seaborn')plt.figure(figsize=(15,9))plt.rcParams.update({'font.family': "Microsoft YaHei"})plt.title("中国票房2021TOP9") plt.pie(cnbodfgbsort.BO,labels=cnbodfgbsort.index,explode=explo,shadow=True)plt.show()五、为饼图加上百分比
# 添加阴影效果# 爆炸效果 饼图脱离from matplotlib import pyplot as plt explo=[0.3,0,0,0,0,0] # 控制爆炸效果plt.style.use('seaborn')plt.figure(figsize=(15,9))plt.rcParams.update({'font.family': "Microsoft YaHei"})plt.title("中国票房2021TOP9") plt.pie(cnbodfgbsort.BO,labels=cnbodfgbsort.index,explode=explo,shadow=True,startangle=0,autopct='%1.2f%%')plt.show()
六、让饼图旋转不同的角度
# 饼图旋转from matplotlib import pyplot as plt explo=[0.3,0,0,0,0,0] # 控制爆炸效果plt.style.use('seaborn')plt.figure(figsize=(15,9))plt.rcParams.update({'font.family': "Microsoft YaHei"})plt.title("中国票房2021TOP9") plt.pie(cnbodfgbsort.BO,labels=cnbodfgbsort.index,explode=explo,shadow=True,startangle=45,autopct='%1.2f%%')plt.show()七、为饼图添加边缘线
# 为饼图添加边缘线from matplotlib import pyplot as plt explo=[0.3,0,0,0,0,0] # 控制爆炸效果plt.style.use('seaborn')plt.figure(figsize=(15,9))plt.rcParams.update({'font.family': "Microsoft YaHei"})plt.title("中国票房2021TOP9") plt.pie(cnbodfgbsort.BO,labels=cnbodfgbsort.index,explode=explo,shadow=True,startangle=45,autopct='%1.2f%%',wedgeprops={"edgecolor":"black"})plt.show()但是我自己感觉并不是非常明显
八、为饼图数据分组
# 将数据按照票房分类labels=['>20000','15000-20000','10000-15000','<10000']c1=cnbodfsort.loc[cnbodfsort.BO>=20000].count()[0]c2=cnbodfsort.loc[(cnbodfsort.BO>=15000) & (cnbodfsort.BO<20000)].count()[0]c3=cnbodfsort.loc[(cnbodfsort.BO<15000) & (cnbodfsort.BO>=10000)].count()[0]c4=cnbodfsort.loc[cnbodfsort.BO<10000].count()[0]cnbohints=[c1,c2,c3,c4]
from matplotlib import pyplot as plt explo=[0.3,0,0,0] # 控制爆炸效果plt.style.use('seaborn')plt.figure(figsize=(15,9))plt.rcParams.update({'font.family': "Microsoft YaHei"})plt.title("中国票房2021TOP9") plt.pie(cnbohints,labels=labels,explode=explo,shadow=True,startangle=45,autopct='%1.2f%%',wedgeprops={"edgecolor":"black"})plt.show()以上是"Python+matplotlib如何实现饼图的绘制"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
效果
爆炸
中国
票房
控制
美国
剧情
动画
数据
阴影
内容
动作
漫画
澳大
爱情
篇文章
边缘
澳大利亚
英国
不同
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
什么是科技互联网
广东猪兼强互联网科技有限公司
互联网科技巨头监管
麻工互联网科技
互联网科技作文
互联网 视角下的科技创新
互联网科技公司介绍
广州优美互联网科技
新华互联网科技2019
以后互联网后是啥科技
互联网系的金融科技公司
互联网经济与金融科技
深圳艾果互联网通讯科技
互联网金融科技名词解释
江苏互联网智能科技软件
互联网科技平台产品运营
陕西九四连强互联网科技有限公司
互联网科技收购价值
科技美学互联网 艺术
武汉亿视互联网科技有限公司
科技互联网政务服务
盈实互联网科技
腾讯阿里互联网科技
互联网与未来科技
阿里互联网科技公司
宝灵互联网科技有限公司
未来五年的互联网科技
烟台灵鸽互联网科技有限公司
广州三三互联网科技有限公司
伍佰万互联网科技是干嘛的