分布在R中应该算是个比较重要的内容,而通过画图来展示数据的分布,可以更直观的让我们了解数据的分布情况
直方图
geom_histogram(mapping = NULL, data = NULL, stat = "bin", position = "stack", ..., binwidth = NULL, bins = NULL, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)
密度图
geom_density(mapping = NULL, data = NULL, stat = "density", position = "identity", ..., na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)
直方图是通过巨型的堆叠高度展示数据的分布情况,而密度图通过线性的弯曲情况展示数据的分布。
下面来看个具体的例子
library(ggplot2)
p<-ggplot(diamonds, aes(carat))
p+geom_histogram(bins=30)
下面我们来看下使用密度图的效果
p+geom_density()
密度图比直方图显得平滑,继续可以看下堆叠情况的对比
p<-ggplot(diamonds, aes(carat,fill=cut))
p+geom_histogram(bins=50)
p+geom_density(position="stack",adjust=1/1.2)
这里未来避免各个分类变量数据的遮挡,把参数position的值设置为stack,可以显示一层层往上叠加的效果
另外参数adjust可以和直方图中参数bins的效果类似,用于调整带状宽度或者矩形宽度
p+geom_density(position="fill",adjust=1/1.2)
把position设置成fill可以更直观的看出每个分类的密度情况,但坐标轴的指示效果会被模糊。