分享

R语言ggplot包之数据分布汇总

 心随所愿zh 2018-08-16

引言

我们经常想观察一批数据的分布形态,直方图、密度图、箱线图、小提琴图和点图等都是很好的实现形式。在此,我们简略介绍直方图、密度图和箱线图,这种三种图形对我们来说更为常用。

直方图

很多人没搞清楚条形图和直方图之间的区别。条形图主要用于展示分类数据,即名义数据,各组分开而立。而直方图多用于展示数值型数据,各组相依。

单组直方图

最基本的语句就是在ggplot语句后再加geom_histogram()即可。

library(gcookbook)
library(ggplot2)
ggplot(faithful, aes(x=waiting)) + geom_histogram()
  • 1
  • 2
  • 3

这里写图片描述
直方图默认最大为30组,我们可以使用*binwidth来改变。

ggplot(faithful, aes(x=waiting)) +geom_histogram(binwidth=8, fill="white", colour="black")#改为8组
  • 1

这里写图片描述

分组直方图

分组直方图做法与其他图形一样,我们用到facet_grid(var ~ .),该方法是以var变量进行分类,做多个图形,非一个图形中做多个直方图。如果变量为数字,应当因子化。

library(MASS) #取binwidth数据
ggplot(birthwt, aes(x=bwt))+geom_histogram(fill="white", colour="black")+facet_grid(smoke ~ .)
  • 1
  • 2

这里写图片描述

核密度曲线

如果你想要做密度曲线,则用geom_density映射一连续变量。

ggplot(faithful, aes(x=waiting)) + geom_density()
#你也可以将包住的部分给填充颜色
ggplot(faithful, aes(x=waiting)) +
geom_density(fill="blue", alpha=.2) +
xlim(35, 105)
#如果你不喜欢线与下方相连,可以使用另外一种方式
ggplot(faithful, aes(x=waiting)) + geom_line(stat="density") +
expand_limits(y=0)#expand_limits使y轴范围包含0值。
#密度曲线与直方图共戏
ggplot(faithful, aes(x=waiting, y=..density..)) +
geom_histogram(fill="cornsilk", colour="grey60", size=.2) +
geom_density() +
xlim(35, 105)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

分组密度曲线

birthwt1 <- birthwt
birthwt1$smoke <- factor(birthwt1$smoke)
ggplot(birthwt1, aes(x=bwt, fill=smoke)) + geom_density(alpha=.3)
  • 1
  • 2
  • 3

这里写图片描述

箱线图

箱线图应用十分广泛,特别是在比较多组数据上。上代码,看看如何实用。

ggplot(birthwt, aes(x=factor(race), y=bwt)) + geom_boxplot()
#如果存在多个多个离群点,可用outlier.size 和outlier.shape进行大小和形状设置
ggplot(birthwt, aes(x=factor(race), y=bwt)) +
geom_boxplot(outlier.size=1.5, outlier.shape=21)
#为了看数据分布是否有偏,我们还可以增加均值与中值进行比较,主要用stat_summary把均值以菱形相展示。
ggplot(birthwt, aes(x=factor(race), y=bwt)) + geom_boxplot() +
stat_summary(fun.y="mean", geom="point", shape=23, size=3, fill="white")

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多