最全Python绘制饼形图(饼状图) |
您所在的位置:网站首页 › 饼图Python字体颜色 › 最全Python绘制饼形图(饼状图) |
饼状图(pie chart)一般用于描述分类型数据的相对频数或百分数频数分布,呈现部分与总体的关系。 一、导入绘图数据 首先导入绘图所需的数据。 import os import pandas as pd os.chdir(r'F:\公众号\6.学习python') #设置成存放数据文件夹路径 date = pd.read_csv("股票数据.csv", encoding = 'GBK') #读取数据注:如需文中数据进行练习,可到公众号中回复“股票数据波动”即可免费获取。展示前几行数据如下: 二、饼状图 1 饼状图绘图原理 Python中绘制饼状图需用matplotlib.pyplot中的pie函数,该函数的基本语法为: pie(x, [explode], [labels], [colors], [autopct], [pctdistance], [labeldistance], [startangle], [radius], [textprops], **kwargs)参数说明: x:数组,绘制饼状图的数据。 [explode]:默认值为None的可选参数。若非None,则是和x相同长度的数组,用来指定每部分的离心偏移量。 [labels]:列表,指定每个饼块的名称,默认值None,为可选参数。 [colors]:特定字符或数组,指定饼图的颜色,默认值None,为可选参数。 [autopct]:特定字符,指定饼图中数据标签的显示方式,默认值None,为可选参数。 [pctdistance]:浮点数,指定显示比例距离圆心的距离。默认值0.6,为可选参数。 [labeldistance]:浮点数,指定每个扇形对应标签与圆心的距离,默认值1.1,为可选参数。 [startangle]:浮点数,指定从x轴逆时针旋转饼图的开始角度,默认值None,为可选参数。 [radius]:浮点数,指定饼图的半径,默认值1,为可选参数。 [textprops]:字典,设置文本对象的字典参数,默认值None,为可选参数。 **kwargs:不定长关键字参数,用字典形式设置条形图的其它参数。 2 绘制饼状图以每年股票成交笔数总计值绘制饼状图,具体语句如下: import matplotlib.pyplot as plt #导入绘图包 plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文显示问题 plt.rcParams['axes.unicode_minus'] = False # 解决中文显示问题 date = date.set_index('日期') #把日期列设为索引 date.index = pd.to_datetime(date.index) #把索引转为时间格式 result = date[['成交笔数']].groupby(date.index.year).sum() #按年总计股票成交笔数 plt.pie(result['成交笔数'], labels=result.index, autopct='%3.1f%%') #以时间为标签,总计成交笔数为数据绘制饼图,并显示3位整数一位小数 plt.title('股票每年成交笔数饼图') #加标题 plt.show()得到结果如下: 3 绘制饼状图并更改显示字体特征 以每年股票成交笔数总计值绘制饼状图,更改字体颜色、尺寸并加粗,具体语句如下: plt.pie(result['成交笔数'], labels=result.index, autopct='%3.1f%%', textprops={'color':'b', 'size':10, 'weight':'bold'}) #设置显示字体颜色、尺寸、加粗 plt.title('股票每年成交笔数饼图', c='b') #加标题 plt.show()得到结果如下: 4 绘制指定离心偏移量饼状图 以每年股票成交笔数总计值为数值,标准化换手率为离心偏移量绘制饼状图,具体语句如下: result = date.groupby(date.index.year).agg(sum=('成交笔数', 'sum'), avg=('换手率', 'mean')) #计算每年成交笔数总计值,换手率均值 plt.pie(result['sum'], explode=result['avg']/result['avg'].max(), labels=result.index, autopct='%3.1f%%') #以成交笔数总计值为数值,标准化换手率为离心值绘制饼状图 plt.show()得到结果如下: 5 绘制多重显示饼状图 根据每年股票成交笔数总计值为数值、标准化换手率为颜色绘制饼图,具体语句如下: import matplotlib.cm as cm #导入库 result = date.groupby(date.index.year).agg(sum=('成交笔数', 'sum'), avg=('换手率', 'mean')) #计算每年成交笔数总计值,换手率均值 plt.pie(result['sum'], colors=cm.ScalarMappable().to_rgba(result['avg']), labels=result.index, autopct='%3.1f%%') #根据换手率均值设置颜色绘制饼图 plt.title('绘制每年股票成交笔数总计值为数值、标准化换手率为颜色的饼图') #设置标题 sm = plt.cm.ScalarMappable(norm=plt.Normalize(vmin=result['avg'].min(), vmax=result['avg'].max())) plt.colorbar(sm) #根据换手率均值的从小到大显示颜色 plt.show()得到结果如下: 6 绘制嵌套饼状图 以每年股票成交笔数总计值绘制外圈,设置饼块保留外圈的20%,边框颜色为白色。以每年换手率均值绘制内圈,半径为原来的80%,字体显示在距圆心50%的地方。具体语句如下: result = date.groupby(date.index.year).agg(sum=('成交笔数', 'sum'), avg=('换手率', 'mean')) #计算每年成交笔数总计值,换手率均值 plt.pie(result['sum'], pctdistance=0.9, wedgeprops={'width':0.2, 'edgecolor':'w'}, labels=result.index, autopct='%3.1f%%') #绘制外圈 plt.pie(result['avg'], pctdistance=0.5, radius=0.8, autopct='%3.1f%%') #绘制内圈 plt.show()得到结果: 至此,在Python中绘制饼状图已全部讲解完毕,感兴趣的同学可以自己实现一遍图片。 【限时免费进群】 在群内免费讨论学习Python、玩转Python、风控建模、人工智能学习、数据分析等内容,也可交流工作中遇到的相关问题。需要的朋友添加微信号19967879837,加时备注想进的群,比如学习Python。 你可能感兴趣: 用Python绘制皮卡丘 用Python绘制词云图 Python人脸识别—我的眼里只有你 Python画好看的星空图(唯美的背景) 用Python中的py2neo库操作neo4j,搭建关联图谱 Python浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白) 长按(扫一扫)识别上方二维码学习更多Python和建模知识,让你的学习和工作更出彩。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |