R数据分析-------ggplot2工具箱二
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R数据分析-------ggplot2工具箱二相关的知识,希望对你有一定的参考价值。
本篇主要分为三部分:
- 揭示不确定性
- 统计摘要
- 添加图形注解
1.揭示不确定性
关于不确定的信息,怎么展示很重要,在ggplot2中共有四类几何对象可以用于这项工作,具体使用取决于x的值是离散型还是连续型的。这些几何对象列于下表中:
变量X类型 | 仅展示区间 | 同时展示区间和中间值 |
连续型 | geom_ribbon | geom_smooth(stat = "identity") |
离散型 |
geom_errorbar geom_linerange |
geom_crossbar geom_pointrange |
下例拟合了一个双因素含交互效应回归模型,并且展示了如何提取边际效应和条件效应,以及如何将其可视化。
> library(ggplot2) > library(effects) > d <- subset(diamonds , carat <2.5 & rbinom(nrow(diamonds),1,0.2)==1) > d$lcarat <- log10(d$carat) > d$lprice <- log10(d$price) > qplot(lcarat,lprice,data=d) > #剔除整体的线性趋势 > detrend <- lm(lprice ~ lcarat,data=d) > d$lprices <- resid(detrend) > mod <- lm(lprices ~ lcarat*color,data=d) > effectdf <- function(...){ + suppressWarnings(as.data.frame(effect(...))) + } > color <- effectdf("color",mod) > both1 <- effectdf("lcarat:color",mod) > carat <- effectdf("lcarat",mod,default.levels=50) > both2 <- effectdf("lcarat:color",mod,default.levels = 3) > qplot(lcarat,lprice,data=d,colour=color) #图1
> qplot(lcarat,lprices,data=d,colour=color)#图2
以上进行数据变换以移除显而易见的效应,图1对x轴和y轴的数据均取以10 为底的对数对数以剔除非线性性。图2剔除了主要的线性趋势。
> fplot <- ggplot(mapping = aes(y=fit,ymin=lower,ymax=upper)) + ylim(range(both2$lower,both2$upper)) > fplot %+% color + aes(x=color) + geom_point() +geom_errorbar() #图3 下左 > fplot %+% both2 + + aes(x = color,colour=lcarat,group=interaction(color,lcarat))+ + geom_errorbar() + geom_line(aes(group=lcarat))+ + scale_colour_gradient() #图4 下右
上两张图展示了模型评估结果中变量color的不确定性。左图为color的边际效应,右图是针对carat的不同水平(level),变量color的条件效应,误差棒显示了95%的逐点置信区间。
> fplot %+% carat + aes(x=lcarat)+geom_smooth(stat="identity") 图5 下左 > ends <- subset(both1,lcarat==max(lcarat)) > fplot %+% both1 + aes(x=lcarat,colour=color) + + geom_smooth(stat="identity")+ + scale_colour_hue() + theme(legend.position = "none")+ + geom_text(aes(label=color,x=lcarat+0.02),ends) #图6 下右 >
上图展示模型估计结果中变量carat的不确定性。上左图为carat的边际效应,上右图则是针对变量color的不同水平,变量carat的条件效应。误差带显示了95%的逐点置信区间。
2.统计摘要
对于每个x的取值,计算对应y值的统计摘要通常是很有用的。在ggplot2中,这一角色由stat_summary()但当,它使用ymin,y和ymax等图形属性,为汇总y的条件分布提供了一种灵活的方法。
2.1单独的统计摘要函数
参数fun.y,fun.ymin和fun.ymax能够接受简单的数值型摘要计算函数,即该函数能够传入一个数据向量并返回一个数值型结果,如:mean(),median(),min(),max().
2.2统一的摘要计算函数
fun.data可以支持更复杂的摘要计算函数,当然也可以使用自己编写的摘要计算函数:如下,此函数应返回一个各元素有名称的向量作为输出。
3.添加图形注解
在使用额外的标签注解时,要记住的重要一点:这些注解仅仅是额外的数据而已。添加图形注解有两种方式:逐个添加或者批量添加。
下面的例子,我们分别以两种方式,向经济数据中加入有关美国总统的信息。
> (unemp <- qplot(date,unemploy,data=economics,geom="line", + xlab="",ylab="No.unemployed(1000s)"))
> presidential <- presidential[-(1:3),] > yrng <- range(economics$unemploy) > xrng <- range(economics$date) > unemp + geom_vline(aes(xintercept = as.numeric(start)),data=presidential) >
以上是关于R数据分析-------ggplot2工具箱二的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用scales包的hue_pal函数获取ggplot2任何级别的离散色码使用scales包的show_col函数可视化ggplot2任何级别的离散色码
R语言使用scales包的hue_pal函数获取ggplot2任何级别的离散色码使用scales包的hue_pal函数获取ggplot2任何级别的反序(reverse)离散色码