R - 图例中组合geom_vline和geom_smooth

2024-03-27

添加时我在图例中遇到一些奇怪的行为geom_smooth() and a geom_vline()在我的 ggplot2 图表中。这是一个可重现的示例:

library(ggplot2)
n <- 60

set.seed(123)
df <- data.frame(Area = sample(c("A", "B", "C", "D"), size = n, replace = TRUE),
             x = runif(n),
             y = runif(n),
             Type = sample(c("I", "II"), size = n, replace = TRUE),
             Result = sample(c("K", "L", "M"), size = n, replace = TRUE))

df.breaks <- data.frame(Area = c("B", "C"), x = c(0.8, 0.3))

ggplot(df, aes(x = x, y = y)) + 
  geom_point(aes(colour = Result, shape = Type), size = 3) + 
  geom_smooth(aes(linetype = "Smooth"), colour = "green", se = FALSE) + 
  geom_hline(yintercept = 0.3) + 
  facet_wrap(~Area) + 
  geom_vline(data = df.breaks, aes(xintercept = x, linetype = "Break"), colour = "purple") + 
  scale_colour_manual(values = c("K" = "red", "L" = "orange", "M" = "blue")) + 
  scale_linetype_manual(name = "Lines", values = c("Break" = "dashed", "Smooth" = "solid"))

您会注意到,“线条”图例在每个项目中都有垂直线和水平线,在第一种情况下有几条虚线,在第二种情况下有几条实线。我正在尝试调整我的代码以生成一个图例,其中(1)一条水平绿线及其旁边的一个名为“Smooth”的键,以及(2)一条垂直的紫色虚线,其旁边有一个名为“Break”的键。我希望得到一些帮助,因为无论我尝试什么(包括linetype内/外aes()等等,或者使用scale_linetype_identity(),甚至是override.aes选项中guides)我找不到合适的组合!

我搜索了类似的例子,尽管我发现其他帖子上有叠加的垂直线colour, fill, or shape等等,我找不到一个上面有垂直线的linetype像我这样的传奇。任何帮助将不胜感激!谢谢!


对这个问题的答复迟来了,但我认为最好有一个答案,以防其他人(或未来的我!)对此感兴趣。

根据 @aosmith 在评论部分的建议以及他提供答案的鼓励,我最终将情节的代码替换为:

ggplot(df, aes(x = x, y = y)) + 
     geom_point(aes(colour = Result, shape = Type), size = 3) + 
     geom_hline(yintercept = 0.3) + 
     facet_wrap(~Area) + 
     geom_vline(data = df.breaks, 
                aes(xintercept = x, linetype = "Break"), colour = "purple") + 
     scale_colour_manual(values = c("K" = "red", "L" = "orange", "M" = "blue")) + 
     scale_linetype_manual(name = "Lines",
                           values = c("Break" = "dashed", "Smooth" = "solid")) + 
     geom_smooth(aes(fill = "Smooth"), method = "loess", colour = "green", se = FALSE) + 
     scale_fill_discrete(name = "")

上面的最后两行替换了原始代码中的以下行:

geom_smooth(aes(linetype = "Smooth"), colour = "green", se = FALSE) +.

生成的图表仍然需要一些工作,特别是图例间距,但它解决了原来的问题。

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

R - 图例中组合geom_vline和geom_smooth 的相关文章

  • 将 r 数据框中的列字符串转换为数字

    我有一个数据框 其中有一列字符串 如下所示 mydata lt c 1 356670 35 355030 1 356670 35 355030 1 356620 35 355890 1 356930 35 358660 1 357000 3
  • ggplot2 中的小时刻度

    我正在处理就寝时间和醒来时间 因此我想创建一个具有 24 小时 x 轴的图表 从第一天中午 12 点开始 到第二天中午 12 点结束 这意味着晚上 11 59 之后 它应该再次从 0 开始 同样的问题 仅涉及数字 我想创建一个从 10 到
  • 如何在 switch 语句中将向量作为参数传递

    我对问题的谷歌搜索没有返回有用的结果和文档 switch没有告诉我如何做 所以我希望我能在这里得到答案 假设我有一个向量 cases lt c one two three 我想使用 switch 语句并将这些元素作为 switch 语句的参
  • 使用 igraph 将边缘属性显示为标签

    我在 R 中使用 igraph 进行网络分析 我想在图中的每条线上显示边缘属性 下面是一个例子 df lt data frame a c 0 1 2 3 4 b c 3 4 5 6 7 nod lt data frame node c 0
  • 如何在R中使用OpenNLP获取POS标签?

    这是 R 代码 library NLP library openNLP tagPOS lt function x s lt as String x word token annotator lt Maxent Word Token Anno
  • 选择一个单元格内的最小值或最大值(分隔字符串)

    我有一个数据框 其中每个样本的列可以有多个值 例如 Gene Pvalue1 Pvalue2 Pvalue3 Beta Ace 0 0381 0 00357 0 01755 0 001385 0 0037 NA 0 039 0 03 1 1
  • R:为什么 kable 不在 for 循环内打印?

    我正在使用 rmarkdown 和 Latex 编写报告 我需要使用打印一组表格knitr kable 但在 for 循环内时不会打印 这是我的代码 title project title author Mr Author date 201
  • 为什么我必须在每次 R 升级时手动创建目录“~/R/%p-library/%v”?

    每次R升级后 我必须重新安装我使用的软件包 来自源代码 因此必须为新版本重新编译它们 这是一个正确的 可以理解的行为 所以我调用install packages http stat ethz ch R manual R devel libr
  • 使用 purrr::map() 更改和分配新变量名称

    我刚刚开始掌握编写函数并使用 lapply purrr map 使我的代码更加简洁 但显然还没有完全理解它 在我当前的示例中 我想重命名 lm robust 对象的系数名称 然后更改 lm robust 对象以合并新名称 我目前这样做 li
  • 计算 R 中数据帧的每一行中特定值的连续出现次数

    我有一个data frame许多位置 这么多行 的变量的每月值 我想计算值为零的连续月份 即连续单元格 的数量 如果只是从左到右阅读 这很容易 但增加的复杂性是年底与年初是连续的 例如 在下面的缩短示例数据集中 用季节而不是月份 位置 1
  • lmer(来自 R 包 lme4)如何计算对数似然?

    我试图理解 lmer 函数 我发现了很多关于如何使用该命令的信息 但关于它实际执行的操作的信息却很少 除了这里的一些神秘注释 http www bioconductor org help course materials 2008 PHSI
  • 带有nearPoints()的动态ggplot图层闪亮

    我熟悉闪亮的基础知识 但在这里遇到了一些困难 我希望能够在单击某个点以突出显示该点时添加 ggplot 图层 我知道 ggvis 可以做到这一点 并且画廊中有一个很好的例子 但我希望能够使用nearPoints 捕获点击作为 ui 输入 我
  • 修复 ggplot 中构面中的数据顺序

    我在使用 ggplot 绘制数据时遇到问题 我无法使每个方面内的数据正确排序 我的样本数据是 data lt structure list Parameter c 0 1 0 7 0 0 0 2 0 2 0 7 0 0 0 1 0 3 0
  • R Data.Table 创建带有条件的变量

    我需要在下面的数据集中创建一个新变量 A X a 1 b 2 c 3 d 4 e 5 f 6 g 7 h 8 i 9 j 10 The newvar如果X等于 2 5 7 或 9 否则 newvar应该是 0 Code dt1 lt dat
  • read.table 和 read.delim 函数之间的区别

    两者有什么区别read table and read delim R语言中的函数 当您不确定函数的作用时 除了阅读帮助页面之外 您还可以检查函数的实际代码 例如 输入read delim显示该函数包含以下代码 gt read delim f
  • 确定向量中是否存在元素的最有效方法

    我有几种算法取决于确定元素是否存在于向量中的效率 在我看来 这 in 这相当于is element 应该是最有效的 因为它只返回一个布尔值 在测试了几种方法之后 令我惊讶的是 这些方法是迄今为止效率最低的 以下是我的分析 随着向量大小的增加
  • R 中的转换会导致文档错误

    每当我运行此代码时 tm map 行都会给我警告消息 警告信息 在 tm map SimpleCorpus docs toSpace 中 转换删除文档 texts lt read csv Data fast food Domino s Do
  • 使用pivot_longer将R中的多列变成一列[重复]

    这个问题在这里已经有答案了 我有一个dfpopulation看起来像这样 未列出所有列和行 Region X1975 X1976 X1977 X2008 National Total 942420 93717 94974 132802 Be
  • 使用 stargazer 分析包含时间序列的数据帧

    我有一个面板数据集共 10 个观测值和 3 个变量 观测值 30 的数量 10 行 国家 地区 2 列 迁移参数 相应年份的 1 列 可以这么说 我的数据框由 3 个年度数据框组成 我该如何申请观星者考虑到它是一个面板数据集 所以最大 N
  • 编写健壮的 R 代码:命名空间、屏蔽和使用 `::` 运算符

    简洁版本 对于那些不想阅读我的 案例 的人来说 这就是本质 最小化新包破坏现有代码 即编写您编写的代码 的机会的推荐方法是什么尽可能坚固 充分利用该功能的推荐方法是什么 命名空间机制 when a just using贡献的软件包 比如在一

随机推荐

  • 为什么rxjs不取消我的承诺?

    我在用rxjs in my angular应用程序 当多个数据时 我并不总是按照我想要的顺序取回数据REST已拨打电话 控制器 constructor rx Observable fromPromise this getExpenses t
  • 如何在代码中添加实体框架6提供程序?

    我在 C 应用程序中使用 Entity Framework 6 它运行良好 创建模型时 会生成包含所有必要配置的 app config 现在我不喜欢在 app config 中添加内容 因此我使用连接字符串生成器 我成功地从 app con
  • Docker RUN groupadd && useradd 指令无效

    我已经使用 Dockerfile 构建了 Docker nginx 基本 映像 其片段如下 FROM ubuntu 14 04 MAINTAINER Me
  • __CC_ARM、__ICCARM__、__GNUC__ 和 __TASKING__ 宏的含义是什么?

    我正在 stm 的 STM32l151rct6a 上工作 我偶然发现了这些宏定义 CC ARM ICCARM GNUC TASKING 有谁知道他们的意思吗 这些是针对 ARM 处理器的不同编译器 可能这些宏用于隐藏可由多个编译器编译的代码
  • C++ 类模板是模板:模板参数无效

    我的类模板有问题 我希望类中的私有数据是某种数字类型的向量的向量 即 std vector
  • 特征方法中的 Rust 生命周期不匹配

    我正在阅读 Rust 书 并尝试实现逻辑以允许文本仅添加到博客中Post如果它在Draft状态 可以发现here https doc rust lang org stable book ch17 03 oo design patterns
  • NSView 子类-drawRect:未调用

    我创建了一个NSView子类称为DAView 合并了一系列有用的方法以供以后重用 这很有效 但是 drawRect 从未在任何使用的类中调用DAView 也不在班级本身 为什么 就是这样DAView好像 DAView interface D
  • MySQL SELECT INTO OUTFILE 导出选项

    有谁知道在哪里可以找到 MySQL 的 SELECT OUTFILE 语句的所有导出选项的文档 我注意到在多个问题参数中 例如 FIELDS ENCLOSED BY delimiter FIELDS ESCAPED BY delimiter
  • Google 退出 iOS

    我试图实现社交登录 Google 在我的新应用程序中 为此 我点击了此链接 https developers google com identity sign in ios start integrating http Google 20S
  • 我可以通过编程方式确定 Airflow DAG 是计划的还是手动触发的?

    我想创建一个片段 根据 DAG 是计划的还是手动触发的来传递正确的日期 DAG 每月运行一次 DAG 根据上个月的数据生成报告 SQL 查询 如果我运行预定的 DAG 我可以使用以下 jinja 片段获取上个月的数据 execution d
  • 为什么 CSS 不支持负填充?

    我已经多次看到负填充的前景可能有助于某些页面元素的 CSS 开发变得更好 更容易 然而 W3C CSS 中没有规定负填充 这背后的原因是什么 该财产是否存在任何阻碍其使用的障碍 感谢您的回答 UPDATE例如 正如我所见 如果您使用的字体具
  • 使用 4 个(或 N 个)集合一次仅生成一个值 (1xN)(即为 tuple4+ 进行压缩)

    scala gt val a List 1 2 a List Int List 1 2 scala gt val b List 3 4 b List Int List 3 4 scala gt val c List 5 6 c List I
  • Java - java有类似C#的struct自动构造函数的东西吗

    我已经使用 C 很长时间了 现在我需要用 Java 做一些事情 java中有类似C 的struct自动构造函数的东西吗 我的意思是 在 C 中 struct MyStruct public int i class Program void
  • jQuery 1.6.4 是否已损坏或发生了什么变化? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 它适用于
  • 以编程方式移动 xib 文件中的 UILabel

    Problem 我的 UILabel 在更改其帧信息后没有移动 但在使用 NSLog 输出后 帧信息与正确的位置匹配 但标签本身实际上并没有移动 更多信息 我正在尝试将 UILabel 移动到与 UITextField 相同的位置 两者都包
  • 动态更改列名

    我有一个标题 详细信息自定义屏幕 我在其中根据标题中的下拉选择来操作显示哪些网格列 这工作得很好 但现在我也想更改一些列名称 使用记录的语法 我无法让它工作 我看不出我做错了什么 似乎没有什么区别 我已经附加到进程并在这个事件上设置了一个断
  • 为什么在编译器选项中添加搜索目录后,标准库头内会报告错误?

    我在 CodeBlocks MinGW32 中有一个项目 其设置如下 Foo src somefile1 cpp Foo src somefile2 cpp Foo src somefile1 h 标头是这样包含的 include some
  • JSON.stringify 使用 Knockout JS 变量的对象

    当前场景 function Employee data var self this variables this Forename ko observable data Forename this Surname ko observable
  • __invert__ 方法

    目的是什么 invert 方法 我在探索 Python 内部结构时发现 gt gt gt dir builtins int abs add and bool ceil class delattr dir divmod doc eq floa
  • R - 图例中组合geom_vline和geom_smooth

    添加时我在图例中遇到一些奇怪的行为geom smooth and a geom vline 在我的 ggplot2 图表中 这是一个可重现的示例 library ggplot2 n lt 60 set seed 123 df lt data