原文链接:http://tecdat.cn/?p=5506

原文出处:拓端数据部落公众号

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

准备数据

这里使用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.5len :牙齿长度
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)

  

有误差棒的线图
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))

拓端tecdat|r语言ggplot2误差棒图快速指南相关推荐

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

    给直方图和线图添加误差棒 准备数据 这里使用ToothGrowth 数据集. library(ggplot2) df <- ToothGrowth df$dose <- as.factor ...

  2. 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

    最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...

  3. 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例

    最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...

  4. 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

    最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...

  5. 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系

    最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...

  6. R语言ggplot2可视化图中添加希腊字母实战

    R语言ggplot2可视化图中添加希腊字母实战 目录 R语言ggplot2可视化图中添加希腊字母实战 #ggplot2可视化图中添加希腊字母1

  7. R语言 ggplot2 多图排列 Part(1)

    在写论文或者报告的时候,肯定会不可避免的遇到编辑多图成一个图的情况.其实方法可以有很多,比方说最笨的办法用PPT自己手动拖移,再高级一点的用PS软件.但是都很繁琐(笔者惭愧的表示这些方法都用过).仔细 ...

  8. R语言ggplot2 | 多图排版

    文章目录 定义主题格式 完成多图拼凑 使用`ggarrange函数`中`align参数`完成上下对齐 使用`annotate_figure函数`添加批注    通常绘制了多张图,但是不清楚如何排版,或 ...

  9. R语言ggplot2可视化箱图(boxplot)并使用ggsignif添加分组显著性(significance)标签

    R语言ggplot2可视化箱图(boxplot)并使用ggsignif添加分组显著性(significance)标签 目录 R语言ggplot2可视化箱图(boxplot)并使用ggsignif添加显 ...

  10. R语言ggplot2可视化密度图(density plot)、改变密度图下的填充色实战

    R语言ggplot2可视化密度图(density plot).改变密度图下的填充色实战 目录 R语言ggplot2可视化密度图(density plot).改变密度图下的填充色实战

最新文章

  1. 关于Delphi中DLL,BPL等无法调试的问题
  2. SpringBoot操作Redis哈希类型
  3. ASP.NET Core实现类库项目读取配置文件
  4. 软件研发工程师转行机器学习之路
  5. 【目录】Django-2.0 学习笔记
  6. linux java 安装 gi_gi的安装和使用
  7. ⅰcp经济模型_干货!来自清华小哥哥的全家桶教程——手把手教你在本地构建 Nervos AppChain...
  8. php取到的时间总是差8小时的解决方法
  9. python中dir用法_Python dir()函数
  10. install intel c/c++ compiler
  11. Java连接数据库代码
  12. ajax上传form表单图片,php form表单ajax上传图片方法
  13. 详解ASR语音转写场景下的应用
  14. 水果店差别定价策略,水果店的单品定价公式
  15. 基于hadoop的商品推荐引擎
  16. [Ynoi2014]不归之人与望眼欲穿的人们
  17. android学生成绩查询代码,android学生成绩查询系统.pdf
  18. ruby自动注册163邮箱
  19. “x经济”的2021:Z世代成价值载体,增量发掘与存量博弈共存
  20. NBU备份之效率提升

热门文章

  1. 概率论与数理统计——贝塞尔校正(Bessel‘s Correction)
  2. 【内外网映射】通过外网ip来访问虚拟机服务器【转载】
  3. PHP几种常见魔术方法与魔术变量解析 1
  4. You Probably Dont Need Derived State
  5. 003::每天五分钟入门TCP/IP协议栈::IP协议之TOS字段说明
  6. 《深入实践Spring Boot》阅读笔记之二:分布式应用开发
  7. namp - 端口扫描 主机判断 漏洞分析
  8. web文件操作常见安全漏洞(目录、文件名检测漏洞)
  9. 了解更多关于11gR2 diskmon
  10. 学了N年英语,你学会翻译了吗?——最基本的数据库连接