在统计分析数据时,经常用到饼状图表示离散变量各水平占比情况来探索数据
饼图的绘制可以使用matplotlib库中的pie函数
plt.pie(x, explode= None, labels= None, colors= None, autopct= None, pctdistance= 0.6, shadow= False, labeldistance= 1.1, startangle= None, radius= None, counterclock= True, wedgeprops= None, textprops= None, center=( 0, 0), frame= False)
- x:指定绘图的数据;
- explode:指定饼图某些部分的突出显示,即呈现爆炸式;
- labels:为饼图添加标签说明,类似于图例说明;
- colors:指定饼图的填充色;
- autopct:自动添加百分比显示,可以采用格式化的方法显示;
- pctdistance:设置百分比标签与圆心的距离;
- shadow:是否添加饼图的阴影效果;
- labeldistance:设置各扇形标签(图例)与圆心的距离;
- startangle:设置饼图的初始摆放角度,一般选择从90度开始比较好看;
- radius:设置饼图的半径大小;
- counterclock:是否让饼图按逆时针顺序呈现;
- wedgeprops:设置饼图内外边界的属性,如边界线的粗细、颜色等;
- textprops:设置饼图中文本的属性,如字体大小、颜色等;
- center:指定饼图的中心点位置,默认为原点
- frame:是否要显示饼图背后的图框,如果设置为True的话,需要同时控制图框x轴、y轴的范围和饼图的中心位置;
解决中文显示问题
plt.rcParams[ 'font.sans-serif'] = 'Microsoft YaHei' plt.rcParams[ 'axes.unicode_minus'] = False
实例来说明:绘图数据:一个网店的当月销量数据
labels = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [110, 120, 132, 135, 150, 100]
import matplotlib.pyplot as plt
# 将横、纵坐标轴标准化处理,保证饼图是一个正圆,否则为椭圆 plt.axes(aspect='equal') explode=[0,0,0,0,0.1,0] #突出显示第五块数据 plt.pie(v1,labels=labels,explode=explode,autopct='%1.1f%%',startangle=90) plt.title('当月网店售出商品分布') plt.show()
使用pyecharts绘制饼状图
from pyecharts import Pie labels = ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"] v1 = [110, 120, 132, 135, 150, 100] pie = Pie("饼图示例") pie.add("", labels, v1, is_label_show=True) pie