r语言ggplot2误差棒图快速指南

简介: r语言ggplot2误差棒图快速指南

给直方图和线图添加误差棒

准备数据

这里使用ToothGrowth 数据集。

library(ggplot2) 
df <- ToothGrowth 
df$dose <- as.factor(df$dose) 
head(df) 
## len supp dose ## 1 4.2 VC 0.5 ## 2 11.5 VC 0.5 ## 3 7.3 VC 0.5 ## 4 5.8 VC 0.5 ## 5 6.4 VC 0.5 ## 6 10.0 VC 0.5
len :牙齿长度
dose : 剂量 (0.5, 1, 2) 单位是毫克
supp : 支持类型 (VC or OJ)

在下面的例子中,我们将绘制每组中牙齿长度的均值。标准差用来绘制图形中的误差棒。

首先,下面的帮助函数会用来计算每组中兴趣变量的均值和标准差:

#+++++++++++++++++++++++++ 
# 计算每个组的均值和标准差 #+++++++++++++++++++++++++ 
# data : a data frame 
# varname : 包含变量的列名  
#要汇总的 #groupnames : 列名的向量,作为#分组变量使用  
data_summary <- function(data, varname, groupnames){ 
summary_func <- function(x, col){ 
c(mean = mean(x\[\[col\]\], na.rm=TRUE), sd = sd(x\[\[col\]\], na.rm=TRUE)) } 
data\_sum<-ddply(data, groupnames, .fun=summary\_func, varname) 
data\_sum <- rename(data\_sum, c("mean" = varname)) 
return(data_sum) 
}

统计数据

df2 <- data_summary(ToothGrowth, varname="len", groupnames=c("supp", "dose")) 
# 把剂量转换为因子变量 
df2$dose=as.factor(df2$dose) head(df2) 
## supp dose len sd ## 1 OJ 0.5 13.23 4.459709 ## 2 OJ 1 22.70 3.910953 ## 3 OJ 2 26.06 2.655058 ## 4 VC 0.5 7.98 2.746634 ## 5 VC 1 16.77 2.515309 ## 6 VC 2 26.14 4.797731 有误差棒的直方图

函数 geom_errorbar()可以用来生成误差棒:

p<- ggplot(df2, aes(x=dose, y=len, fill=supp)) + geom\_bar(stat="identity", color="black", position=position\_dodge()) + geom_errorbar(aes(ymin=len-sd, ymax=len+sd),) 
print(p) # 条形图

你可以选择只保留上方的误差棒:

#只保留上部的误差条 
ggplot(df2, aes(x=dose, y=len, fill=supp)) + geom\_bar(stat="identity", color="black", position=position\_dodge()) + geom_errorbar(aes(ymin=len, ymax=len+sd), width=.2)
1

有误差棒的线图

p<- ggplot(df2, aes(x=dose, y=len, group=supp, color=supp)) position=position_dodge(0.05)) print(p) 
#线图 
p+labs(title="Tooth length per dose", x="Dose (mg)

你也可以使用函数 geom\_pointrange() 或 geom\_linerange() 替换 geom_errorbar()

#用 geom_pointrange 
geom_pointrange(aes(ymin=len-sd, ymax=len+sd)) 
# 用 geom\_line()+geom\_pointrange()
 geom\_line()+ geom\_pointrange(aes(ymin=len-sd, ymax=len+sd))

有均值和误差棒点图

使用函数 geom\_dotplot() and stat\_summary() :

平均值+/-SD可以作为误差条或点范围添加。
 # 用geom_crossbar() 
p + stat\_summary(fun.data="mean\_sdl", fun.args = list(mult=1), geom="crossbar", width=0.5) 
# 用geom_errorbar() 
geom="errorbar", color="red", width=0.2) + stat_summary(fun.y=mean, geom="point", color="red") 
# 用geom_pointrange() 
summary(fun.data=mean_sdl, fun.args = list(mult=1))

相关文章
|
9月前
R语言ECM误差修正模型、均衡修正模型、受限VECM、协整检验、单位根检验即期利率市场数据
R语言ECM误差修正模型、均衡修正模型、受限VECM、协整检验、单位根检验即期利率市场数据
|
9月前
|
数据可视化 算法
R语言近似贝叶斯计算MCMC(ABC-MCMC)轨迹图和边缘图可视化
R语言近似贝叶斯计算MCMC(ABC-MCMC)轨迹图和边缘图可视化
|
6月前
|
数据可视化 数据挖掘 图形学
R语言基础可视化:使用ggplot2构建精美图形的探索
【8月更文挑战第29天】 `ggplot2`是R语言中一个非常强大的图形构建工具,它基于图形语法提供了一种灵活且直观的方式来创建各种统计图形。通过掌握`ggplot2`的基本用法和美化技巧,你可以轻松地将复杂的数据转化为直观易懂的图形,从而更好地理解和展示你的数据分析结果。希望本文能够为你探索`ggplot2`的世界提供一些帮助和启发。
|
6月前
|
数据可视化
R语言自定义图形:ggplot2中的主题与标签设置
【8月更文挑战第30天】`ggplot2`作为R语言中功能强大的绘图包,其自定义能力让数据可视化变得更加灵活和多样。通过合理使用`theme()`函数和`labs()`函数,以及`geom_text()`和`geom_label()`等几何对象,我们可以轻松创建出既美观又富有表达力的图形。希望本文的介绍能够帮助你更好地掌握`ggplot2`中的主题与标签设置技巧。
|
9月前
|
数据可视化
R语言生态学进化树推断物种分化历史:分类单元数与时间关系、支系图可视化
R语言生态学进化树推断物种分化历史:分类单元数与时间关系、支系图可视化
R语言生态学进化树推断物种分化历史:分类单元数与时间关系、支系图可视化
|
9月前
|
监控 数据可视化 数据挖掘
R语言质量控制图、质量管理研究分析采购订单数量、CPU时间、纸厂产出、钢板数据可视化
R语言质量控制图、质量管理研究分析采购订单数量、CPU时间、纸厂产出、钢板数据可视化
|
9月前
|
数据可视化 前端开发
在R语言中实现sem进行结构方程建模和路径图可视化1
在R语言中实现sem进行结构方程建模和路径图可视化
|
9月前
|
数据可视化
在R语言中实现sem进行结构方程建模和路径图可视化2
在R语言中实现sem进行结构方程建模和路径图可视化
|
9月前
|
机器学习/深度学习 算法
R语言用随机森林模型的酒店收入和产量预测误差分析
R语言用随机森林模型的酒店收入和产量预测误差分析
|
9月前
|
数据可视化 Python
R语言分析糖尿病数据:多元线性模型、MANOVA、决策树、典型判别分析、HE图、Box's M检验可视化
R语言分析糖尿病数据:多元线性模型、MANOVA、决策树、典型判别分析、HE图、Box's M检验可视化