Python+matplotlib如何实现饼图的绘制
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍Python+matplotlib如何实现饼图的绘制,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、整理数据关于cnboo1.xlsx,我放在我的码云里,需要
千家信息网最后更新 2025年01月31日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安全错误
数据库的锁怎样保障安全
添加大数据库快捷键
吉林新一代网络技术服务优势
戴尔服务器内存条安装
共同富裕 人社 网络安全
安全许可证服务器不能
朝阳区网络安全培训
计算机网络技术国际化
悟空说网络安全法全集
ai软件开发股票
个人空间模板软件开发
计算机网络安全 英语
未来之役服务器怎么改回原来的
软件开发培训班的质量
台湾省视频会议服务器
怎样获取服务器数据库
软件开发工作量的度量
hp ux管理服务器在
赵新秋 工业控制网络技术
软件开发产品生产计划
数据库访问管理系统
厦门大学数据库作业
多个二级域名如何映射到服务器上
wifi是计算机网络技术吗
文件服务器 分布式
通州软件开发
网络安全培训一年多少钱
服务器主板报警五短一长
济南瑞驿网络技术有限公司
梦菲云服务器
数据库访问管理系统