ggplot2 geom相关设置—分布图

分布在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可以更直观的看出每个分类的密度情况,但坐标轴的指示效果会被模糊。

posted @ 2016-07-23 21:49  molearner  阅读(8297)  评论(0编辑  收藏  举报