饼状图(pie chart)一般用于描述分类型数据的相对频数或百分数频数分布,呈现部分与总体的关系。
导入绘图数据
饼状图
2.1 饼状图绘图原理
2.2 绘制饼状图
2.3 绘制饼状图并更改显示字体特征
2.4 绘制指定离心偏移量饼状图
2.5 绘制多重显示饼状图
2.6 绘制嵌套饼状图

import osimport pandas as pdos.chdir(r'F:\公众号\6.学习python') #设置成存放数据文件夹路径date = pd.read_csv("股票数据.csv", encoding = 'GBK') #读取数据


1 饼状图绘图原理
pie(x, [explode], [labels], [colors], [autopct], [pctdistance], [labeldistance], [startangle], [radius], [textprops], **kwargs)
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()

plt.pie(result['成交笔数'], labels=result.index, autopct='%3.1f%%', textprops={'color':'b', 'size':10, 'weight':'bold'}) #设置显示字体颜色、尺寸、加粗plt.title('股票每年成交笔数饼图', c='b') #加标题plt.show()
得到结果如下:

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()

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()

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中绘制饼状图已全部讲解完毕,感兴趣的同学可以自己实现一遍
。


扫一扫关注我
19967879837
投稿微信号、手机号
文章转载自阿黎逸阳的代码,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




