将误差线添加到具有多个组的条形图中

2023-11-25

我有以下条形图,我想向其中添加误差线。

library(lattice)    
barchart(Change~fTreat,groups=Process,change,
          auto.key=list(points=FALSE,rectangles=TRUE),
          panel=function(x, y,...){
            panel.barchart(x,y,origin = 0,...);
            panel.abline(h=0,col="black",...);
            }
          )

enter image description here

我尝试使用 memisc 包中的 panel.errbars,它非常适合 xyplots,但是当我将它添加到我的代码中时,它不尊重组。

library(memisc)    
barchart(cbind(Change,lower,upper)~fTreat,groups=Process,change,
     ylab="Pocertage change",
     ylim=-115:50,
     scales=list(alternating=FALSE,
                 tick.number=7,
                 tck=c(-1,0)),
     panel=function(x, y,groups,...){
       panel.barchart(x,y=change$Change,groups=change$Process,origin = 0,...);
       panel.abline(h=0,col="black",...);
       panel.errbars(x,y,make.grid="none",ewidth=0.2,type="n",...)
     }
     )

enter image description here Any ideas of how to add error bars to my plot either using the panel.errbars or any other function?

数据:

    structure(list(Treat = structure(c(3L, 4L, 1L, 2L, 3L, 4L, 1L, 
2L), .Label = c("12-380", "12-750", "8-380", "8-750"), class = "factor"), 
    Process = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L), .Label = c("Resp", 
    "Cal"), class = c("ordered", "factor")), Change = c(-33.05, 
    -34.74, 20.94, 18.06, 6.85, -28.57, -8.1, -78.72), upper = c(-13.22896628, 
    -28.61149669, 31.29930461, 27.30173776, 39.73271282, 9.458372948, 
    13.11035572, -47.03745704), lower = c(-52.86120694, -40.87446411, 
    10.57421563, 8.822042178, -26.03144161, -66.60447035, -29.30563327, 
    -110.3973761), fTreat = structure(c(1L, 2L, 3L, 4L, 1L, 2L, 
    3L, 4L), .Label = c("8-380", "8-750", "12-380", "12-750"), class = c("ordered", 
    "factor"))), .Names = c("Treat", "Process", "Change", "upper", 
"lower", "fTreat"), row.names = c(NA, -8L), class = "data.frame")

Cheers


这是我使用格子给出的另一个答案。

prepanel=function(y, stderr, subscripts=subscripts, ...){
  uy <- as.numeric(y+stderr[subscripts])
  ly <- as.numeric(y-stderr[subscripts])
  list(ylim=range(y,uy,ly, finite=TRUE))
}
panel.err=function(x, y, subscripts, groups, stderr, box.ratio, ...){
  d <- 1/(nlevels(groups)+nlevels(groups)/box.ratio)
  g <- (as.numeric(groups[subscripts])-1); g <- (g-median(g))*d
  panel.arrows(as.numeric(x)+g,y-stderr[subscripts], as.numeric(x)+g, y+stderr[subscripts],
               code=3,angle=90, length=0.025)
}
barchart(Change~fTreat,groups=Process,change,
         stderr=change$stderr,
         ylab="Pocertage change",
         xlab="Treatment",
         ylim=-115:50,
         auto.key=list(points=FALSE,rectangles=TRUE,columns=2),
         scales=list(alternating=FALSE,
                     tick.number=7,
                     tck=c(-1,0)),
         prepanel=prepanel,
         panel=function(x, y, subscripts, groups, stderr, box.ratio, ...){
             panel.barchart(x, y, subscripts=subscripts,
                            groups=groups, box.ratio=box.ratio,origin=0, ...)
             panel.abline(h=0,col="black",...)
             panel.err(x, y, subscripts=subscripts,
                       groups=groups, box.ratio=box.ratio,stderr=change$stderr)
           }
         )

非常感谢 Walmes Marques Zeviani 提供代码

这是修改后的数据:

change <- structure(list(Treat = structure(c(3L, 4L, 1L, 2L, 3L, 4L, 1L, 
2L), .Label = c("12-380", "12-750", "8-380", "8-750"), class = "factor"), 
    Process = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L), .Label = c("Respiration", 
    "Calcification"), class = c("ordered", "factor")), Change = c(-33L, 
    -35L, 21L, 18L, 7L, -29L, -8L, -79L), stderr = c(20L, 6L, 
    10L, 9L, 33L, 38L, 21L, 32L), fTreat = structure(c(1L, 2L, 
    3L, 4L, 1L, 2L, 3L, 4L), .Label = c("8-380", "8-750", "12-380", 
    "12-750"), class = c("ordered", "factor"))), .Names = c("Treat", 
"Process", "Change", "stderr", "fTreat"), row.names = c(NA, -8L
), class = "data.frame")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将误差线添加到具有多个组的条形图中 的相关文章

  • r : 直方图上的 ECDF

    在 R 中 与ecdf我可以绘制经验累积分布函数 plot ecdf mydata 与hist我可以绘制数据的直方图 hist mydata 如何在同一图中绘制直方图和 ecdf EDIT 我尝试做类似的东西 https mathemati
  • ggplot:按组自动化的百分位线

    我找到了dplyr gt 运算符有助于简单的 ggplot2 转换 无需求助于ggproto 这是必需的ggplot2 扩展 http docs ggplot2 org dev vignettes extending ggplot2 htm
  • 在 mts 对象上使用 Apply 系列函数

    在 mts 对象上使用 apply 或 sapply 会在发送到函数时删除其时间序列属性 我应该如何在 mts 对象中的每个时间序列上应用相同的函数 带有 ts 输入和 ts 输出 并返回它 最好是 mts 我的意思是除了使用 for 循环
  • 从 R 主题模型中的 DocumentTermMatrix 中删除空文档?

    我正在使用 R 中的 topicmodels 包进行主题建模 我正在创建一个 Corpus 对象 进行一些基本的预处理 然后创建一个 DocumentTermMatrix corpus lt Corpus VectorSource vec
  • glm() 模型的交叉验证

    我正在尝试对我之前在 R 中构建的一些 glm 模型进行 10 倍交叉验证 我对cv glm 函数在boot包 尽管我已经阅读了很多帮助文件 当我提供以下公式时 library boot cv glm data glmfit K 10 这里
  • udunits2 R 安装:找不到 udunits2.h

    我正在尝试在 R 中安装 udunits2 以满足对ggforce包裹 但是 安装程序在检查 udunits2 时始终失败 我已经尝试过中的说明this https stackoverflow com questions 47059517
  • Dplyr 多重滞后整齐评估?

    我试图在 dplyr 中使用尽可能少的代码来实现多个滞后 同时坚持整洁的评估 以下标准评估 SE 代码有效 if require dplyr install packages dplyr library dplyr a as tibble
  • 解释 survreg 中的威布尔参数

    我正在尝试使用从 R 中的 survreg 估计的参数生成逆威布尔分布 我的意思是 对于给定的概率 这将是在 MS Excel 中实现的小型模拟模型中的随机数 返回使用我的参数预计出现故障 的时间 我理解逆威布尔分布的一般形式是 X b l
  • R 条形图中的 X 轴

    我想问一个关于 barplot 轴的问题 首先请看我的数据 SerNo DOY Rain 1 350 0 2 351 0 3 352 0 4 353 0 5 354 0 6 355 0 7 356 0 8 357 0 9 358 0 10
  • 在ggplot2中创建部分虚线

    我正在 R 中创建一个图 并且需要创建一条线 其中某些值是投影 投影用虚线表示 这是代码 df data frame date c rep 2008 2013 by 1 value c 303 407 538 696 881 1094 gg
  • 在 R 中修改传单弹出窗口

    我想修改 R 中传单弹出窗口的外观 帮助文件指出 in the popupOptions 函数需要 传递给底层 Javascript 对象构造函数的额外选项 In 这个例子 https rstudio github io leaflet p
  • 我可以调整scale_color_brewer的下限吗?

    我已经订购了我想使用 color Brewer 的分类数据 但我很难看到非常低的值 有没有办法去掉这些较低的值或设置范围的下限 ggplot data frame x 1 6 y 10 15 w letters 1 6 aes x y co
  • 当子集长度为零时,如何简洁地处理子集?

    从向量中排除元素x x lt c 1 4 3 2 我们可以减去位置向量 excl lt c 2 3 x excl 1 1 2 这也是动态工作的 excl lt which x which max x gt quantile x 25 1 2
  • 使用亚毫秒日期时间从字符->POSIXct->字符准确转换

    我的文件中有一个字符日期时间列 我加载文件 到data table 并执行需要将列转换为的操作POSIXct 然后我需要写POSIXct值返回文件 但日期时间不会相同 因为打印不正确 这个打印 格式问题是众所周知的 并且已经被讨论过多次 我
  • 创建序列组合

    我正在尝试解决以下问题 考虑 5 个简单序列 0 100 100 0 rep 0 101 rep 50 101 rep 100 101 我需要 3 个数字变量的集合 它们的所有组合都具有上述序列 由于有 5 个序列和 3 个变量 因此可以有
  • 如何制作一连串的ggplots并在它们之间绘制箭头?

    对于一个项目 我需要绘制一些图并在它们之间放置箭头作为序列的指示 我想知道我是否可以用 ggplot 来做到这一点 是否可以使用 ggplot2 绘制一个干净的大箭头并将其添加到最终的多重图中 作为示例 我使用此代码来绘制绘图 librar
  • 通过 RCpp 返回 NA

    新手 RCpp 问题在这里 How can I make a NumericVector returnNA到R 例如 假设我有一个 RCpp 代码 它分配NA到向量的第一个元素 RCpp export NumericVector myFun
  • R:如何更改ggvis闪亮应用程序中特定范围的绘图背景颜色

    I have a simple shiny app like below and you can run it The plots are created by ggvis and user can choose student name
  • 如何根据查找表匹配多列

    我有以下两个数据框 lookup lt data frame id c A B C price c 1 2 3 results lt data frame price 1 c 2 2 1 price 2 c 3 1 1 我现在想要浏览所有列
  • 在 R 中收集多组列[重复]

    这个问题在这里已经有答案了 我有一个宽数据框 需要将其收集或融化成一个高数据框 我遇到的问题是我有几组列需要保持关联 分组 我每个表单提交有 2 个用户 每个用户有 3 列数据 我想将这 6 列基本上以 3 组的形式堆叠起来 以便每个用户都

随机推荐

  • 如何在 Selenium 中自动接受 Chrome 的“始终在关联应用程序中打开这些类型的链接”对话框

    我正在使用 Selenium 和 C 进行自动化测试 并且需要从浏览器打开一个外部应用程序 问题是 我总是收到此通知 它会阻止测试执行 有谁知道如何处理这个问题 Chrome 将接受协议处理程序的设置存储在用户配置文件中 从 Seleniu
  • 使用 Cython 包装 C++ 类时处理指针

    我在使用 cython 处理指针时遇到问题 该类的 cython 实现持有一个指向该类的 C 实例的指针Person 这是我的 pyx file 人 pyx cdef class PyPerson cdef Person pointer d
  • PLSQL 中的反思?

    我正在编写一个过程来处理存储在 ANYDATA 中的用户定义对象 对象类型和属性名称只能在运行时知道 因此我无法在声明部分为其定义变量 在Java中 我可以使用反射来处理它 我可以知道类名和字段名 然后我可以通过反射访问这些字段 有没有办法
  • 保留 SVG 文本的纵横比

    这是经过编辑的副本https stackoverflow com questions 29105120 preserve aspect ratio for svg text and react to javascript touch eve
  • 在 Java 中的 Mac Os X 上获取网络摄像头流 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想获取我的 Macbook 集成 iSight 网络摄像头 的网络摄像头流 我使用 Java 并且对 Objective C 一无所知 所以我正在寻找一个 完整的 java 解
  • FragmentPagerAdapter getItem 位置错误

    我的 FramentPageAdapter 有一个奇怪的问题 MainActivity java SuppressLint ValidFragment public class MainActivity
  • Swift:以 NSException 类型的未捕获异常终止

    我正在开发一个简单的应用程序 当我单击注册用户时 该应用程序将被终止 请帮我解决这个问题 它说 由于未捕获的异常 NSUnknownKeyException 而终止应用程序 原因 setValue forUndefinedKey 这个类不是
  • 在 C# 和 Mysql 中使用预准备语句

    我在程序中尝试了准备好的语句 但不起作用 注释的部分是Prepared Statement 部分 当我把它改成正常的语句时 一切都正确了 有人能告诉我我错过了什么吗 非常感谢 private void btnLogin Click obje
  • 模拟服务器请求 Android Espresso UI 测试

    我正在使用 Espresso 为我的 Android 应用程序编写 UI 测试 并且想使用 MockWebServer 模拟 http 请求 我需要在运行测试之前模拟身份验证响应并登录用户 有没有办法让应用程序使用mockwebserver
  • C# 中的代理/邮箱处理器使用新的 async/await

    这个问题结合了两个我不完全理解的主题 阅读通过paper关于 F 中的异步 我遇到了 Agents MailboxProcessors 主题 它可用于实现反应式状态机 C 5 中新的 async await 功能是否可以用于在 C 中实现类
  • 如何从控制器方法重定向到路由

    我在控制器中定义了一个方法 首先检索输入 如果我的数据库中存在电子邮件字段 我想返回一个视图 但是 如果电子邮件字段不存在 我想重定向到另一条路线 我也想将输入传递给该路线 为了更好地理解我的意思 我的控制器代码如下 public func
  • 更改 matplotlib imshow() 图表轴上的值

    假设我有一些输入数据 data np random normal loc 100 scale 10 size 500 1 32 hist np ones 32 20 initialise hist for z in range 32 his
  • gnuplot:标签部分中的斜体

    对于这个 可能 基本问题感到抱歉 但我刚刚开始使用 gnuplot 我想要创建一个轴标签 其中一部分以斜体显示 就像是 xlabel 不是斜体 斜体 我知道设置标签显示斜体很容易 设置xlabel字体 Times Italic 20 但是是
  • Vista 上的 BDE 初始化失败(错误 $2501)

    我有一个用 Delphi 2007 编写的小型 datasnap 服务器 用于访问 BDE 它在 Windows 2000 和 XP 上运行良好 但在 Vista 上时不时 实际上经常 我收到错误消息 尝试初始化 Borland 数据库引擎
  • Android 中无法播放视频

    视频在下面提到的代码中无法正常工作 这可能是什么问题 MediaController mediaController new MediaController getBaseContext mediaController setAnchorV
  • 如何检测 UIImageView 的触摸事件?

    我在导航栏上放置了一个图像 UIImageView 现在我想检测触摸事件并想要处理该事件 我怎样才能做到这一点 实际上 不要这样做 而是在 UIImageView 上添加一个具有自定义样式的按钮 除非指定图像 否则没有按钮图形 然后附加您想
  • Python中字典的深度合并字典

    我需要合并多个词典 例如 这是我所拥有的 dict1 1 a A 2 b B dict2 2 c C 3 d D With A B C and D是树的叶子 就像 info1 value info2 value2 字典的级别 深度 未知 可
  • 在 Java 临界区中,我应该同步什么?

    在 Java 中 在代码中声明临界区的惯用方法如下 private void doSomething thread safe code synchronized this thread unsafe code thread safe cod
  • 尝试使 Web 方法异步

    我目前正在进行的项目涉及使用会话变量的 MS SQL Server 和 ASP net Web 服务 显然 这会导致客户端的调用以顺序方式执行 我想确保这些方法异步执行 经过一些研究后 在我看来 最好的方法是使用跟踪会话的表 例如使用 gu
  • 将误差线添加到具有多个组的条形图中

    我有以下条形图 我想向其中添加误差线 library lattice barchart Change fTreat groups Process change auto key list points FALSE rectangles TR