使用 ggplot2 仅将线段添加到一个方面

2023-11-24

作为一个例子,我有这个数据框,称为my_data:

         Groups    FactorA    FactorB    FactorC N    value         sd        se         ci
1       Control Condition1 Condition1 Condition1 3 92.00000  6.0827625  3.511885  15.110420
2       Control Condition1 Condition1 Condition2 2 69.00000  8.4852814  6.000000  76.237228
3       Control Condition1 Condition2 Condition1 3 72.33333 10.2632029  5.925463  25.495209
4       Control Condition1 Condition2 Condition2 2 97.00000  2.8284271  2.000000  25.412409
5       Control Condition2 Condition1 Condition1 3 85.00000 13.0000000  7.505553  32.293790
6       Control Condition2 Condition1 Condition2 2 78.50000 16.2634560 11.500000 146.121354
7       Control Condition2 Condition2 Condition1 3 95.00000  5.1961524  3.000000  12.907958
8       Control Condition2 Condition2 Condition2 2 78.00000 22.6274170 16.000000 203.299276
9  Experimental Condition1 Condition1 Condition1 2 80.00000  5.6568542  4.000000  50.824819
10 Experimental Condition1 Condition1 Condition2 3 74.00000 19.9248588 11.503623  49.496093
11 Experimental Condition1 Condition2 Condition1 2 68.50000  0.7071068  0.500000   6.353102
12 Experimental Condition1 Condition2 Condition2 3 78.66667 18.5831465 10.728985  46.163095
13 Experimental Condition2 Condition1 Condition1 2 81.00000 19.7989899 14.000000 177.886866
14 Experimental Condition2 Condition1 Condition2 3 75.33333 17.0391706  9.837570  42.327646
15 Experimental Condition2 Condition2 Condition1 2 81.50000 14.8492424 10.500000 133.415150
16 Experimental Condition2 Condition2 Condition2 3 78.00000  5.2915026  3.055050  13.144821

使用此代码创建

my_data <- data.frame(Groups=c(rep("Control",20),rep("Experimental",20)),
                      FactorA=rep(c("Condition1","Condition2"),20),
                      FactorB=rep(c("Condition1","Condition1","Condition2","Condition2"),10),
                      FactorC=rep(c(rep("Condition1",4),rep("Condition2",4)),5),
                      value=sample(60:100,40,replace=T)
                      )

# add standard errors with a specific function    
my_data <- summarySE(my_data,
                     measurevar="value",
                     groupvars=c("Groups","FactorA","FactorB", "FactorC"))

然后,使用以下代码:

    ggplot(my_data, aes(Groups,value,fill=FactorA)) + 
  geom_bar(position=position_dodge(), stat="identity") +
  geom_errorbar(aes(ymin=value-se, ymax=value+se),
               width=.1,                    # Width of the error bars
               position=position_dodge(.9)) +
  facet_grid(FactorB~FactorC) +
  geom_segment(x=0.8,y=100,xend=1.2,yend=100) +
  theme(axis.text.x=element_text(size=12, colour="black"),
        axis.title.x=element_blank(),
        legend.key.size=unit(1,"cm"),
        legend.text=element_text(size=14),
        plot.title=element_text(lineheight=.8, face="bold"),
        panel.margin=unit(1, "lines"),
        axis.title.y = element_text(size = 16, vjust=0.3),
        strip.text.y = element_text(size=16,face="bold"),
        strip.text.x = element_text(size=16,face="bold")) +
  coord_cartesian(ylim=c(60, 120))

我得到这个情节

enter image description here

正如你所看到的,用这条线geom_segment(x=0.8,y=100,xend=1.2,yend=100)出现四个部分,每个方面一个,但我只想在一个方面绘制一个部分(例如在左上图中)。

有人可以帮我吗?我尝试了各种解决方案但没有任何结果。


将段的数据放入数据框中并添加列FactorB and FactorC以及您需要绘制线段的级别。

data.segm<-data.frame(x=0.8,y=100,xend=1.2,yend=100,
                      FactorB="Condition1",FactorC="Condition1")

现在使用此数据框添加段。还添加inherit.aes=FALSE inside geom_segment()忽略 ggplot() 中设置的 fill=FactorA。

  + geom_segment(data=data.segm,
               aes(x=x,y=y,yend=yend,xend=xend),inherit.aes=FALSE)+

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ggplot2 仅将线段添加到一个方面 的相关文章

随机推荐

  • preg_match_all() [function.preg-match-all]: 未知修饰符 ']'

    使用了几种不同的模式 但它们都出现了这个错误 那么出了什么问题呢 我要诊断的最短的一个是 pattern
  • 为什么使用“*”构建视图不好?

    为什么使用 构建视图不好 假设您有一个复杂的联接 并且所有字段都可能在某处使用 然后您只需选择所需的字段即可 SELECT field1 field2 FROM aview WHERE 视图 aview 可以是SELECT table1 t
  • 不需要导出仅包含虚拟/内联函数的类?

    在 Win32 上的 C 中 假设我有一个带有声明类的头文件的 DLL DLL 导出一些获取该类实例的指针 引用的方法 例如工厂函数 我是否正确地认为 如果只在其实例上调用虚拟或内联函数 则无需使用 declspec 将该类标记为导出 相反
  • 导入错误:无法导入名称 _imaging

    我安装了Pillow 然后我想做 from PIL import Image 我收到以下错误 Traceback most recent call last File
  • 如何在 MySQL 中搜索嵌套 JSON

    我使用 MySQL 5 7 和本机 JSON 数据类型 样本数据 code 2 stores code 100 quantity 2 code 200 quantity 3 code 4 stores code 300 quantity 4
  • 将同一对象两次添加到 ManyToManyField

    我有两个 Django 模型类 class A models Model name models CharField max length 128 irrelevant class B models Model a models ManyT
  • Mac OS X shell 实用程序,显示多核系统中各个 CPU 的使用情况

    我一直在寻找一个 osx 实用程序来显示每个 cpu 的 cpu 使用情况 例如 中央处理器 0 10 中央处理器 1 2 我知道有很多方法可以在其他类 Unix 系统 proc mpstat 等 中获取此信息 但在 osx 中都不起作用
  • 检查对象数组是否包含某个键

    我需要确定对象数组中是否存在某个键 这是一个示例数组 arrOfObj mainKey1 subKey1 innerKey1 innerMostKey1 key1 value mainKey2 key2 value mainKe
  • 如何使用 Javascript 下载、压缩和保存多个文件并获得进度?

    我正在创建一个 Chrome 扩展程序 需要从网站下载多个文件 图像和 或视频 这些文件可能很大 所以我想向用户显示下载进度 经过一番研究 我发现目前可能的解决方案可能是 使用 XMLHttpRequests 下载所有文件 下载后 使用 J
  • Hibernate:flush() 和 commit()

    打电话是个好习惯吗org hibernate Session flush 分别地 正如中所述org hibernate Session docs 必须在工作单元结束时 提交事务并关闭会话之前调用 根据刷新模式 Transaction com
  • Java 中的 for 循环如何检查其条件?

    我的问题与当存在 print 语句时 java 检查 for 循环条件的顺序有关in循环的 条件 这似乎是一件不切实际的事情 我从未见过它以任何实际的方式使用过 尽管我对打印内容缺乏理解 这让我认为我可能不完全理解 for 循环的功能 最近
  • nextjs13 中所有 mui 组件上的“使用客户端”是什么?

    我是 React nextjs 开发的新手 一直认为反应组件在服务器中渲染并准备好缓存 但是 如果 nextjs 13 将所有 mui 控件作为客户端组件 渲染将在哪里发生 客户端 正如你所看到的 即使对于 2 行 React 的做法也是
  • 如何在 Javascript 中对英文和中文混合进行字数统计

    我想统计一篇包含英文和中文的文章中有多少个单词 对于英语来说 这很简单 每个词都是一个词 对于中文 我们将每个字符算作一个单词 因此 香港人在这里是三个词 例如 我是香港人 的字数应该为 6 知道如何在 Javascript jQuery
  • 图片未显示在推送通知中

    我正在使用下面的通知有效负载并使用 Postman 向 Android 设备发送推送通知 to topics xxxx data url https res cloudinary com demo image upload w 200 la
  • 未找到 ClientBuilder 类

    我正在尝试使用 Jersey 框架构建 RESTFul 客户端 因此我添加了以下类 import javax ws rs client Client import javax ws rs client ClientBuilder publi
  • “不是 git 存储库”

    我正在尝试使用一个使用 git 作为后备存储的程序 我是 git 的新手 在初始化时 该程序执行以下操作 git bare rev parse refs heads index 结果是 fatal Not a git repository
  • 快速更新约束

    我将约束添加到我的创建的按钮中UIView func CreateButtonWithIndex index Int newButton setTranslatesAutoresizingMaskIntoConstraints false
  • 将 C++ 对象添加到 Objective-C 类

    我正在尝试混合 C 和 Objective C 我已经完成了大部分工作 但希望在 Objective C 和 C 代码之间有一个接口类 因此我想在 ViewController 接口中有一个持久的 C 对象 由于禁止声明没有类型的 myCp
  • 安装magento,数据库连接错误。

    我正在尝试将 magento 安装到我的 web 主机上 在安装过程中我收到 数据库连接错误 我已正确输入所有值 已联系我的 web 主机以确保我此时陷入困境 他们说参考 magento 论坛额外的支持 我找不到修复方法 任何想法 帮助将不
  • 使用 ggplot2 仅将线段添加到一个方面

    作为一个例子 我有这个数据框 称为my data Groups FactorA FactorB FactorC N value sd se ci 1 Control Condition1 Condition1 Condition1 3 92