画图好难。。。就感觉太多的参数,太多的写法,搞不清楚。。。
matplotlib作为一个非常强大的画图第三方库,可以绘制非常多的漂亮的图象,原谅我想象力有限,对漂亮的理解一言难尽。。。
这篇博文里面介绍其他的常用的图形类型。是的,我会更新的。。。学习好难,总结也好难。。。
直方图与条形图
条形图:条形图用长条形表示每一个类别,长条形的长度表示类别的频数,宽度表示表示类别。
直方图:直方图是一种统计报告图,形式上也是一个个的长条形,但是直方图用长条形的面积表示频数,所以长条形的高度表示:频数/组距。 宽 度表示组距,其长度和宽度均有意义。当宽度相同时,一般就用长条形长度表示频数。但是可以选择归一化何不归一化。归一化之后看面积,没有归一化看高度。
区别 | 频数分布直方图 | 条形图 |
横轴上的数据 | 连续的是一个范围 | 瑰丽的,之间没有关系,可以设定 |
长条形之间 | 没有空隙,是连续的 | 分散的,间距可以设定 |
频数的表示 | 一般用长条形面积表示频数,当宽度相同时,看高度 | 长条形的长度 |
直方图
import numpy import matplotlib.pyplot as plt import random plt.rcParams[‘font.sans-serif‘] = [‘KaiTi‘] plt.rcParams[‘font.serif‘] = [‘KaiTi‘] plt.rcParams[‘axes.unicode_minus‘] = False # 解决保存图像是负号‘-‘显示为方块的问题,或者转换负号为字符串 #直方图 data = numpy.random.randn(10000)*10 # data = [random.random() for _ in range(10000)] print(data) ‘‘‘ 我们随机产生10000个随机并且服从正态分布的数据,看他们出现的频率 绘制直方图 data:必选参数,绘图数据 bins:直方图的长条形数目,可选项,默认为10 normed:是否将得到的直方图向量归一化,可选项,默认为0,代表不归一化,显示频数。normed=1,表示归一化,显示频率。 facecolor:长条形的颜色 edgecolor:长条形边框的颜色 alpha:透明度 ‘‘‘ plt.hist(data, bins=50, density=0, facecolor="blue", edgecolor="black", alpha=0.7) # 显示横轴标签 plt.xlabel("区间") # 显示纵轴标签 plt.ylabel("频数/频率") # 显示图标题 plt.title("频数/频率分布直方图") plt.show()
结果:
条形图
label_list = [‘2014‘,‘2015‘,‘2016‘,‘2017‘,‘2018‘,‘2019‘] y1 = [10,30,45,60,12,30] y2 =[30,20,26,53,23,43] x = numpy.arange(len(label_list)) rect1 = plt.bar(x,height=y1,width=0.4, alpha=0.8,label="信工",color="red") rect2 = plt.bar(x = [i+0.4 for i in x] , height=y2,width=0.4,label="数学",color="blue") #编辑文本 for rect in rect1: height = rect.get_height() plt.text(rect.get_x() + rect.get_width()/2, height+1, str(height), ha=‘center‘, va=‘bottom‘) for rect in rect2: height = rect.get_height() plt.text(rect.get_x() + rect.get_width()/2, height+1, str(height), ha=‘center‘, va=‘bottom‘) #对X轴重定向 plt.xticks([index+0.2 for index in x], label_list) plt.xlabel("年份") plt.ylabel("数量") plt.title("职员数统计") #Y轴的取值范围 plt.ylim(0,65) plt.legend() plt.show()
结果:
emmmmmmm关于text我还没来得及去API查i详细的参数表示,就只是在网站上看了一下用法。。。。好难。。。
还有啥水平条形图,堆叠条形图,饼图,箱型图。但是这个周末我不想再写了。。。
原文:https://www.cnblogs.com/0422hao/p/11708156.html