8.5 数据分布型图
8.5.1 频数直方图(histogram)
认识频数直方图
频数直方图是用于表示数据分布情况的常见统计图,一般用横轴表示数据区间,纵轴表示分布情况,柱子越高,则落在该区间的数量越大。根据数据分布状况不同,直方图展示的数据有不同的模式,包括对称单峰、偏左单峰、偏右单峰、双峰、多峰以及对称多峰。
频数直方图的基本参数:
(1)组数:在统计数据时,我们把数据按照不同的范围分成几个组,组的个数称为组数。
(2)组距:每一组两个端点的差。
(3)频数:分组内的数据元的数量除以组距。
频数直方图统计过程:
首先要从数据中找出它的最大值和最小值,然后确定一个区间,使其包含全部测量数据,将区间分成若干小区间,统计测量结果出现在各小区间的频数M,以测量数据为横坐标,以频数M为纵坐标,划出各小区间及其对应的频数。在平面直角坐标系中,横轴标出每个组的端点,纵轴表示频数,每个矩形的高代表对应的频数,我们也称这样的统计直方图为频数分布直方图。
频数直方图的作用:
- 能够显示各组频数或数量分布的情况。
- 易于显示各组之间频数或数量的差别。通过统计直方图还可以观察和估计哪些数据比较集中,异常或者孤立的数据分布在何处。
绘制频数直方图
在ggplot2中绘制频数直方图的函数是geom_histogram和qplot,默认情况下,数据被分为30组,可通过参数binwidth调节组距,bins改变分组数。
data1 %>% ggplot(aes(x = v1)) + geom_histogram() # 简单频数直方图。
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
qplot(data1$v1) # 这等价于上面的geom_histogram。
## Warning: `qplot()` was deprecated in ggplot2 3.4.0.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
data1 %>% ggplot(aes(x = v1)) + geom_histogram(bins = 60) # 组数调节,ggplot2默认组数为30。
data1 %>% ggplot(aes(x = v1)) + geom_histogram(binwidth = 0.1) # 组距调节,binwidth用于调节组距。
data1 %>% ggplot(aes(x = v1)) + geom_histogram(binwidth = 0.01) # 组距调节,binwidth用于调节组距。
data1 %>% ggplot(aes(x = v1)) + geom_histogram(fill = "white", colour = "black") # 改变填充色和边框色。
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
data1 %>% ggplot(aes(x = v1)) + geom_histogram(fill = "white", colour = "black", binwidth = 0.01) # 改变填充色和边框色。
data1 %>% ggplot(aes(x = v1)) +
geom_histogram(fill = "white", colour = "black", binwidth = 0.01) + facet_wrap(~ nitrogen) # 多组数据分面直方图绘制。
data1 %>% ggplot(aes(x = v1, fill = nitrogen)) + geom_histogram(position = "identity", colour = "black", binwidth = 0.01) # 多分组映射直方图。
参考资料
ggplot2: 数据分析与图形艺术,西安交通大学出版社,2013.
R语言数据可视化之美:专业图表绘制指南,电子工业出版社,2019.
R数据科学,人民邮电出版社,2018.
R数据可视化手册,人民邮电出版社,2014.
图之典-直方图,http://www.tuzhidian.com/chart?id=5c56e58b4a8c5e048189c736
本文使用 文章同步助手 同步