首页 > 编程知识 正文

Python 条形与直方有非常大的区别

时间:2023-05-06 17:30:40 阅读:277049 作者:482

区别:


首先,条形图是用条形的长度表示各类别频数的多少,其宽度(表示类别)则是固定的;

直方图是用面积表示各组频数的多少,矩形的高度表示每一组的频数或频率,宽度则表示各组的组距,因此其高度与宽度均有意义。

其次,由于分组数据具有连续性,直方图的各矩形通常是连续排列,而条形图则是分开排列。

最后,条形图主要用于展示分类数据,而直方图则主要用于展示数据型数据,我们初中学的就是条形统计图,很显然有没有当初那种感觉?(身高-年龄 条形统计图)在坐标上画出每个年龄对应的频数。这就是我们研究数据分布最喜欢用的。如果还是有点蒙,下面相同数据对比一下这两种图像你就会明白!

数据: 年龄012345678910总数人数3671113181511754100条形统计图(注重每类多少个): import matplotlib.pyplot as pltimport numpy as npimport pandas as pdplt.rcParams['font.sans-serif']=['SimHei'] #正常显示中文plt.rcParams['axes.unicode_minus']=False #正常显示负号# d=pd.read_excel('E:Pythonprojectsdatadata100.xlsx',header=None)# d=d[0]# d=list(d)ages=range(11)count=[3,6,7,11,13,18,15,11,7,5,4]plt.bar(ages,count, label='graph 1')# params# x: 条形图x轴# y:条形图的高度# width:条形图的宽度 默认是0.8# bottom:条形底部的y坐标值 默认是0# align:center / edge 条形图是否以x轴坐标为中心点或者是以x轴坐标为边缘plt.legend()plt.xlabel('ages')plt.ylabel('count')plt.title(u'测试例子——条形图')for i in range(11): plt.text(i,count[i]+0.1,"%s"%count[i],va='center')plt.show()

直方图: import matplotlib.pyplot as pltimport matplotlib.mlab as mlabimport numpy as npimport pandas as pdplt.rcParams['font.sans-serif']=['SimHei'] #正常显示中文plt.rcParams['axes.unicode_minus']=False #正常显示负号# d=np.random.normal(0,1,100)d=pd.read_excel('E:Pythonprojectsdatadata100.xlsx',header=None)d=d[0]d=list(d)print(d)n, bins, patches = plt.hist(x=d, bins=11, color='#0504aa', alpha=0.8, rwidth=0.6) #alpha 是颜色深度 rwidth 条形宽度,bins条形箱的数目plt.grid(axis='y', alpha=0.4) #alpha 网格颜色深度plt.xlabel('age')plt.ylabel('count')plt.title('100个样本分布如下')plt.text(20, 40, r'$mu=0, sigma=1$')#前面是坐标,写字# plt.ylim(19) #设置y的范围plt.show()

对比两个图就能知道,条形图将类别对的死死的,但是直方图就用间隔来划分每一柱多少,虽然大体相差不大,但是对于数据研究那影响可大也可小。总之了解了区别才能避免不必要的犯错。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。