3、绘制柱形图
1)作用
柱形图又叫条形图、柱状图,用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析。
2)语法格式和参数说明
① 语法格式
plt.bar(x,height,color,edgecolor,width=0.8,bottom=None,align=“center”)
② 参数说明
x 表示在x轴的哪个位置绘制柱形图;height表示每个柱子的高度。
color 表示柱子的颜色。
edgecolor 表示柱子边缘的颜色。
width 表示每个柱子的宽度。柱子的宽度可以相同,可以不同。
bottom 表示每个柱子的底部位置。每个柱子的底部位置可以相同,可以不同。
align 表示柱子的位置与x值的对应关系。可选center、edge参数。center表示柱子位于x值的中心位置,edge表示柱子位于x值的边缘位置。
3)演示说明
① 绘制某超市饮料类型和顾客性别的条形图
plt.figure(dpi=100) x1 = [1,2,3,4,5] y1 = [6,10,11,8,15] x2 = [1,2] y2 = [22,28] plt.subplot(121) plt.bar(x1,y1,width=0.5,align="center",color="r") plt.title("不同饮料类型的人数对比图") plt.xlabel("饮料类型") plt.ylabel("数量") plt.xticks([1,2,3,4,5],["果汁","矿泉水","绿茶","其它","碳酸饮料"]) plt.yticks(np.arange(0,16,3)) for x1,y1 in zip(x1,y1): plt.text(x1,y1,y1,ha="center",va="bottom",fontsize=10) plt.subplot(122) plt.bar(x2,y2,width=0.8,align="center",color="g") plt.title("不同顾客性别的人数对比图") plt.xlabel("顾客性别") plt.ylabel("数量") plt.xticks([1,2],["男","女"]) plt.yticks(np.arange(0,31,5)) for x2,y2 in zip(x2,y2): plt.text(x2,y2,y2,ha="center",va="bottom",fontsize=10) plt.subplots_adjust(wspace=0.5) plt.savefig("饮料类型和顾客性别",dpi=300)
结果如下:
② 绘制某超市不同饮料类型下,男女人数的对比图
plt.figure(dpi=100) x = np.array([1,2,3,4,5]) y1 = np.array([1,6,7,2,6]) y2 = np.array([5,4,4,6,9]) plt.bar(x,y1,width=0.5,label="男",color="g") plt.bar(x+0.5,y2,width=0.5,label="女",color="b") plt.title("某超市不同饮料类型下男女人数的对比图") plt.xlabel("饮料类型") plt.ylabel("数量") plt.legend(loc="best",title="顾客性别") plt.xticks(x+0.15,["果汁","矿泉水","绿茶","其它","碳酸饮料"]) plt.yticks(np.arange(0,11,2)) for x,y1 in zip(x,y1): plt.text(x,y1,y1,ha="center",va="bottom",fontsize=10) for x,y2 in zip(x+0.5,y2): plt.text(x,y2,y2,ha="center",va="bottom",fontsize=10) plt.savefig("某超市不同饮料类型下男女人数的对比图",dpi=300)
结果如下:
4、绘制不同饮料类型的帕累托图
1)演示说明
① 绘制不同类型饮料的帕累托图
plt.figure(dpi=100) x = np.array([1,2,3,4,5]) y1 = np.array([6,10,11,8,15]) # 先将y1中的元素,进行降序排序 y1 = np.sort(y1)[::-1] y2 = y1.cumsum()/np.sum(y1) plt.bar(x,y1,width=0.3,color="g") plt.xlabel("饮料类型") plt.ylabel("数量") plt.xticks(x,["碳酸饮料","绿茶","矿泉水","其它","果汁"]) for xy1 in zip(x,y1): plt.annotate("{}".format(xy1[1]),xy=xy1,ha="center",va="bottom") plt.twinx() plt.plot(x,y2,color="r",lw=3) plt.ylabel("百分比") plt.yticks(np.arange(0,1.1,0.2)) plt.title("不同类型饮料的帕累托图") plt.savefig("不同类型饮料的帕累托图",dpi=300)
结果如下:
5、绘制饼图
1)作用
饼图用圆形及圆内扇形的角度来表示数值大小的图形,它主要用于表示一个样本(或总体)中各组成部分的数据占全部数据的比例。对于研究一个总体的结构性组成很有作用。
2)语法格式和参数说明
① 语法格式
plt.pie(x,y,height,color,edgecolor,width=0.8,bottom=None,align=“center”)
② 参数说明
x 表示要绘图的数据。
labels 每个部分显示的标签。
explode 指定每个部分距离圆心的偏移量(单位为半径的长度)。
colors 指定每个部分的颜色。
autopct 设置每个部分显示的比例值(格式化)。
counterclock 是否逆时针绘图。默认为True。
startangle 初始绘图点位置(逆时针偏移x轴的角度),默认为偏移0度(x轴)。
shadow 是否含有阴影,默认为False。(用处不大)
一些重要参数的图示说明: