手动更改线型顺序并偏移 ggplot 中的误差线

2023-12-13

使用这些数据

Data <- structure(list(value = c(180, 528, 180, 147, 468, 151, 194, 568, 
210), SE = c(21.7869586486209, 21.0831764730322, 21.2726560659361, 
21.7869586486209, 21.0831764730322, 21.2726560659361, 21.7869586486209, 
21.0831764730322, 21.2726560659361), PredictionType = c("InSitu", 
"ExSitu", "ExSitu", "ExSitu", "InSitu", "ExSitu", "ExSitu", "ExSitu", 
"InSitu"), Area = c("AAA", "BBB", "CCC", "AAA", "BBB", "CCC", 
"AAA", "BBB", "CCC")), .Names = c("value", "SE", "PredictionType", 
"Area"), class = "data.frame", row.names = c(NA, -9L))

和下面的代码我可以生成下面的图。

ggplot(Data)+
  geom_point(aes(x=Area, y=value, color=Area),size=3, shape=1)+
  geom_errorbar(aes(x=Area, ymin=value-SE, ymax=value+SE, color=Area, linetype = PredictionType),cex=0.75)

enter image description here

线型正确区分了 ExSitu 和 InSitu 预测,但我希望线型相反。含糊其辞的是,我希望虚线为 ExSitu,实线为 InSitu。

另外,是否可以偏移误差线,使它们不直接相互重叠?理想情况下,我希望实心 InSitu 估计值集中在该区域(AAA、BBB、CCC)上,而两个虚线 ExSitu 估计值稍微偏向中心的左右两侧。

提前致谢。


您可以使用position偏移(闪避)点和误差线的参数(参见例如here)。但是,您在每个“区域”内有多个具有相同“预测类型”的点/误差条,并且需要为区域内的每个点创建一个具有唯一值的新变量,以使dodge-正在工作。这里我使用ave创建虚拟变量。我“借”了一个未使用的aes理论,fill,进行躲避,然后删除填充图例。的顺序linetypes 的使用被更改为scale_linetype_manual.

Data$id <- with(Data, ave(Area, Area, FUN = seq_along))
dodge <- position_dodge(width = 0.4)

ggplot(Data, aes(x = Area, y = value, fill = id, colour = Area, linetype = PredictionType)) +
  geom_point(size = 3, shape = 1, position = dodge) +
  geom_errorbar(aes(ymin = value - SE, ymax = value + SE),
                cex = 0.75, position = dodge) +
  scale_linetype_manual(values = c("dotted", "solid")) +
  scale_fill_discrete(guide = FALSE) 

enter image description here

Update以下评论:

为了将“InSitu”点放在中间,一种可能性是将“InSitu”数据的 id 变量设置为 2,将“ExSitu”数据分别设置为 1 和 3:

Data <- Data[order(Data$Area, Data$PredictionType), ]
Data$id <- as.character(c(1, 3, 2))

ggplot(Data, aes(x = Area, y = value, fill = id, colour = Area, linetype = PredictionType)) +
  geom_point(size = 3, shape = 1, position = dodge) +
  geom_errorbar(aes(ymin = value - SE, ymax = value + SE),
                size = 1, width = 0.5, position = dodge) +
  scale_linetype_manual(values = c("dotted", "solid")) +
  scale_fill_discrete(guide = FALSE)

enter image description here

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

手动更改线型顺序并偏移 ggplot 中的误差线 的相关文章

  • 单击并按住 R 中的按钮闪亮?

    我希望能够通过单击 R 闪亮按钮来更改参数的值 所以我需要按钮 一个用于增加值 一个用于减少值 我想在按住按钮的同时保持值以一定的速度减少 增加 通过释放按钮的点击 动作应该停止 到目前为止我还没有找到这个选项actionButtons在
  • 从 R 主题模型中的 DocumentTermMatrix 中删除空文档?

    我正在使用 R 中的 topicmodels 包进行主题建模 我正在创建一个 Corpus 对象 进行一些基本的预处理 然后创建一个 DocumentTermMatrix corpus lt Corpus VectorSource vec
  • 根据值的运行总计创建组

    我的数据在一个变量 Y 上是唯一的 另一个变量 Z 告诉我每个 Y 中有多少人 我的问题是我想从这些 Y 和 Z 创建 45 人的组 我的意思是 每当运行总计Z 达到 45 创建一组 然后代码继续创建下一组 我的数据看起来像这样 ID X
  • 尽管提供了群落矩阵,纯素食 DBRDA 物种得分为空

    我使用纯素社区生态包在 R 中执行了 基于距离的冗余分析 dbRDA 我想在 dbRDA 结果的排序图中显示 鱼类 营养群体对样本之间差异 营养级鱼类组合的丰度数据 的相对贡献 IE 将箭头和营养级组名称叠加到排序图上 其中箭头线的长度表示
  • 在 R 中读取 Stata 13 文件

    有没有办法在 R 中读取 Stata 版本 13 数据集文件 我尝试执行以下操作 gt library foreign gt data read dta TEAdataSTATA dta 但是 我收到一个错误 read dta TEAdat
  • R - 根据另一个数据框查找每组的重叠日期

    我有一个数据框 其中包含多个雨量计的降雨测量值 如下例所示 gt rnfl ID date value 1 250 2000 03 01 5 37 2 250 2000 03 02 0 00 3 250 2000 03 03 2 94 4
  • 包检查时如何有效处理未压缩的保存?

    在最近开发一个包的过程中 我将数据集包含在data 我的包的文件夹 在我的具体情况下 我有 5 个数据集 所有这些数据集都位于data table格式 尽管我在下面描述的问题仍然存在 如果我将它们保留为data frame 我已将每个人单独
  • 正则表达式挑选括号之间的一些文本[重复]

    这个问题在这里已经有答案了 可能的重复 提取 R 中所有括号内的信息 正则表达式 https stackoverflow com questions 8613237 extract info inside all parenthesis i
  • udunits2 R 安装:找不到 udunits2.h

    我正在尝试在 R 中安装 udunits2 以满足对ggforce包裹 但是 安装程序在检查 udunits2 时始终失败 我已经尝试过中的说明this https stackoverflow com questions 47059517
  • 仅在具有重复块名称的另一个 Rmarkdown 文档中运行一个 Rmarkdown 文档中的代码

    我正在 Rmarkdown 中编写一系列相互补充的报告 我想将上一份报告的结果纳入我目前正在编写的报告中 我看到其他建议使用的问题purl从 Rmarkdown 文档中提取 R 代码然后运行它 所以我尝试了以下操作 r read previ
  • 如何判断某个软件包是否已经安装?

    当我安装 yaml 包时 如果之前已经安装过 RStudio 则会弹出一条烦人的错误消息 如何判断该软件包是否已安装 以便我可以在代码中决定是否安装该软件包 该消息位于弹出窗口中 内容如下 此安装将更新的一个或多个软件包 当前已加载 在更新
  • 解释 survreg 中的威布尔参数

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

    我想修改 R 中传单弹出窗口的外观 帮助文件指出 in the popupOptions 函数需要 传递给底层 Javascript 对象构造函数的额外选项 In 这个例子 https rstudio github io leaflet p
  • 带有嵌套分组变量的多行轴标签,用于 - R 中的堆积条形图

    我想使用 ggplot 制作一个包含多个类别的堆叠条形图 并带有嵌套的标记 X 轴 类似于我使用 Excel 制作的条形图 如此处所示 我尝试使用给出的例子here https stackoverflow com questions 181
  • 使用亚毫秒日期时间从字符->POSIXct->字符准确转换

    我的文件中有一个字符日期时间列 我加载文件 到data table 并执行需要将列转换为的操作POSIXct 然后我需要写POSIXct值返回文件 但日期时间不会相同 因为打印不正确 这个打印 格式问题是众所周知的 并且已经被讨论过多次 我
  • 如何在 R 中查找平衡面板数据(又名,如何查找面板中的哪些条目在给定窗口内完整)

    我有来自 Compustat 的大量数据 我向其中添加了一些手工收集的数据 认真地从一堆旧书中手工收集 但我不想手工收集整个面板 只想随机选择一个子集 为了找到更大的集合 我从中随机选择 我想从 Compustat 的平衡面板开始 我看到p
  • 创建序列组合

    我正在尝试解决以下问题 考虑 5 个简单序列 0 100 100 0 rep 0 101 rep 50 101 rep 100 101 我需要 3 个数字变量的集合 它们的所有组合都具有上述序列 由于有 5 个序列和 3 个变量 因此可以有
  • 通过 RCpp 返回 NA

    新手 RCpp 问题在这里 How can I make a NumericVector returnNA到R 例如 假设我有一个 RCpp 代码 它分配NA到向量的第一个元素 RCpp export NumericVector myFun
  • R 在安装包依赖项时不考虑最大版本

    假设我正在开发一个名为magicr做一些统计魔术 我希望它使用另一个名为的包中的函数fairydust 假设 存在于 CRAN 上 很遗憾fairydust刚刚向 CRAN 发布了 2 0 0 版本 完全破坏了我计划使用的功能 所以我更新了
  • R - 如何为数据范围内的缺失值绘制条形图零点?

    假设我对 1 到 10 之间的整数的 200 个点有 10 个观察值 mysample sample rep seq 1 10 20 10 我想用条形图绘制它 barplot table mysample barplot https i s

随机推荐

  • PDO错误处理[重复]

    这个问题在这里已经有答案了 从有关管间的教程中 我了解了一些有关执行 PDO 查询的知识 本教程使用了 try catch 查询的结构基本上如下 try dbh new PDO mysql host hostname dbname dbna
  • 捕获正在运行的进程的 FlashWindowEx 事件

    我有一个已经在运行的应用程序 它时不时地触发 FlashWindowEx 事件 Windows 7 图标闪烁 我想捕捉这个事件 但我似乎找不到任何关于如何捕捉的好信息 我的想法是事情会是这样的 使用 Process GetProcesses
  • Ajax 日历扩展器结束日期

    我正在使用 ajax 日历扩展器作为 起始日期 和 截止日期 文本框 我必须禁用 截止日期 之前的日期或小于所选 起始日期 的日期 我可以看到很多帖子使用range validation 如何在不向用户发送任何消息的情况下禁用日期 首先添加
  • Silverlight 中的 Lync 错误:客户端不受信任

    当我尝试在 Silverlight 应用程序中加载 Lync 控件时 出现错误 客户端不受信任 当我在没有相应的 Web 项目的情况下调试 Silverlight 应用程序时 不会出现此错误 这是生成错误的代码 LyncClient l L
  • 为什么 python 不能从 python 函数中调用 Javascript() ?

    我使用了建议的代码从 iPython Notebook 下载 CSV动态构建 JavaScript 代码 并在从 Jupyter Notebook 调用时使用 Python 中的 Javascript 将其传递到浏览器 代码效果很好 如果我
  • 丢失了我的密钥库,只有 SHA1

    我不小心删除了我的keystore文件 现在我无法在 Google Play 中更新我的应用程序 我只有其中的 SHA1 指纹 我想知道是否有办法创建一个新的密钥库并在那里插入该 SHA1 代码 这样我就可以使用密钥库再次管理我的应用程序
  • 如何根据张量流中的某些谓词从队列中过滤张量?

    如何使用谓词函数过滤存储在队列中的数据 例如 假设我们有一个存储特征和标签张量的队列 我们 只需要那些满足谓词的张量 我尝试了以下实现但没有成功 feature label queue dequeue if predicate featur
  • C++ 传递函数指针

    我有以下功能 static void p 我想将指向 p 的函数指针传递给函数 x void x void ptr 我正在尝试以下操作 但它不起作用 x ptr 注意 x 和 p 属于不同的类 我收到以下编译错误 invalid conve
  • 如果一个字段已填满,是否可以禁用另一个字段的输入?

    如果另一个字段包含 MS Dynamics AX 2012 中的数据 我想禁用表字段的输入 更新1 如果 Field1 有输入 Field2 和 Field3 必须为空 字段1 字段2 字段3 客户编号 身份证号 1 0000000001
  • Flutter - Android 在发布模式下不请求许可 - 自动拒绝

    在一周内我不再问这个问题之后 我就来了 我一直在尝试解决Android没有权限的问题 我用 Flutter 开发了这个应用程序 并将其上传到 Play 商店进行开放测试 但是 在发布模式下 它永远不会请求许可 只是从来没有 控制台 logc
  • log4j2:注册自定义触发策略

    我为 log4j2 编写了一个自定义 TriggeringPolicy 它应该按照以下建议在每个小时 天 your interval 结束时滚动 log 文件这个帖子 尽管我遵循 TimeBasedTriggeringPolicy 约定 命
  • “vaGetDisplay”和“vaGetDisplayDRM”的错误[重复]

    这个问题在这里已经有答案了 将 ubuntu 操作系统从 14 04 更新到 16 04 后 我使用以下配置安装了 ffmpeg 库 PATH HOME bin PATH PKG CONFIG PATH HOME ffmpeg build
  • Delphi如何旋转png图像?

    如何在 Delphi 中旋转 png 图像并保持其透明度 我通过加载它TPNGObject 然后我正在使用Canvas StretchDraw MyRect the TPNGObject 但我不知道如何旋转它 问题是 如果您使用画布进行旋转
  • 使用自定义类根据其他数组对 NSArray 进行排序

    我迫切需要对数组进行排序 情况如下 我需要根据另一个数组中的其他对象类重新排列 排序和替换数组 ParentClass NSObject NSString name NSNumber type 这是父类 填充parentArray pare
  • 如何在asp.net中打开MS Office word?

    在我的应用程序中 当用户单击特定链接按钮时 MS Word 必须打开 我如何为此编写代码 谢谢 无法保证当用户单击网页上的链接 按钮时将打开特定应用程序 打开的应用程序由用户的浏览器和操作系统设置决定 作为开发人员 您可以指定MIME类型您
  • 如何针对 Google Api 撤销身份验证令牌客户端

    我正在尝试使用 Google Api 客户端代码撤销令牌 我的代码看起来像这样 get https accounts google com o oauth2 revoke token accessToken function window
  • 单击 jQuery 中的链接时如何防止模糊()运行?

    i have
  • 将一个表中的值插入到另一表中

    我有这段代码来选择 jobseeker 表中的所有字段 并且应该通过将 userType 设置为 admin 来更新 user 表 其中 userID userID 此 userID 是我的用户中的一个用户 数据库 然后 该语句应该将 jo
  • 在编译时获取泛型类

    虽然我知道由于类型擦除 您实际上无法在运行时获取泛型的类型 但我想知道是否可以在编译时获取它 class ObjectHandle
  • 手动更改线型顺序并偏移 ggplot 中的误差线

    使用这些数据 Data lt structure list value c 180 528 180 147 468 151 194 568 210 SE c 21 7869586486209 21 0831764730322 21 2726