在scale_y_log10变换后,背景填充(通过geom_rect)被删除

2024-01-06

我想向使用分组数据(因子 x 轴)和对数刻度 y 轴创建的绘图添加背景填充。添加对数刻度后,背景填充将被删除。

这是一个错误,还是我做错了什么?

可重现的示例数据:我将使用mtcars数据,但随着cyl变量作为因子。这是模仿我的数据的最简单的数据集。

library(dplyr)
library(ggplot2)
mtcars_f <- mtcars %>% 
  mutate(cyl.f = factor(cyl)) 

这对于正常的 y 轴刻度来说效果很好。

mtcars_f %>% 
  ggplot(aes(cyl.f, mpg)) +
  geom_rect(xmin=-Inf, ymin=17.5, xmax=Inf, ymax=22.5) +
  geom_point() 

问题:但是,当 y 轴变换时,背景矩形填充会被删除:

mtcars_f %>% 
  ggplot(aes(cyl.f, mpg)) +
  geom_rect(xmin=-Inf, ymin=17.5, xmax=Inf, ymax=22.5) +
  geom_point() +
  scale_y_log10()

注意:这是一个不同的问题这个类似标题的问题 https://stackoverflow.com/questions/35197640/geom-rect-not-working-with-scale-y-log10-ggplot2

编辑答案:@Tung 的答案有效!这也可以通过将数据传递给来解决geom_rect为了美观,您将 x 轴指定为“离散”

rect_df <- 
  data_frame(xmin=-Inf, ymin=17.5, xmax=Inf, ymax=22.5)
mtcars_f %>% 
  ggplot(aes(cyl.f, mpg)) +
  geom_rect(data = rect_df, aes(xmin=xmin, ymin=ymin, xmax=xmax, ymax=ymax), inherit.aes = F) +
  geom_point() +
  scale_y_log10() +
  scale_x_discrete()

这是一个解决方法,使用annotate直到你发现出了什么问题geom_rect

library(dplyr)
library(ggplot2)

mtcars_f <- mtcars %>% 
  mutate(cyl.f = factor(cyl)) 

mtcars_f %>% 
  ggplot(aes(cyl.f, mpg)) +
  scale_y_log10() +
  scale_x_discrete() +
  annotate(geom = "rect", 
           xmin = -Inf, ymin = 17.5, xmax = Inf, ymax = 22.5,
           fill = "light blue", alpha = 0.8) +
  geom_point() +
  theme_classic(base_size = 12)

创建于 2018-08-24代表包 https://reprex.tidyverse.org(v0.2.0.9000)。

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

在scale_y_log10变换后,背景填充(通过geom_rect)被删除 的相关文章

  • R 中的匹配和计数字符串(DNA 的 k 聚体)

    我有一个字符串列表 DNA 序列 包括 A T C G 我想找到所有匹配项并插入到表中 该表的列都是这些 DNA 字母表的所有可能组合 4 k k 是每个匹配项的长度 K mer 必须由用户指定 行代表 DNA 字母表的数量在列表中按顺序匹
  • R+Hadoop:如何从HDFS读取CSV文件并执行mapreduce?

    在以下示例中 small ints to dfs 1 1000 mapreduce input small ints map function k v cbind v v 2 MapReduce函数的数据输入是一个名为small ints的
  • 错误:“tidyverse”的包或命名空间加载失败:“namespace:dplyr”未导出对象“relocate”

    我使用以下命令安装了 tidyverse install packages tidyverse 但是安装后 当我使用以下命令调用库时 library tidyverse 我收到此错误 Error package or namespace l
  • 两组点之间的距离[重复]

    这个问题在这里已经有答案了 因此 在查看了 stackoverflow 上提出的各种问题后 我仍然无法理解 R 中的 dist 函数 甚至无法理解一般的距离矩阵 所以我有两个带有 xy 坐标的数据框 df1 lt data frame x
  • R 中的优化函数可以接受目标、梯度和粗麻布吗?

    我有一个想要优化的复杂目标函数 优化问题需要相当长的时间来优化 幸运的是 我确实有可用的函数的梯度和粗麻布 R 中是否有一个优化包可以接受所有这三个输入 optim 类不接受 Hessian 矩阵 我已经扫描了用于优化的 CRAN 任务页面
  • 自动化 RStudio 处理 RMarkdown?

    我有一个 RMarkdown 文件 用于生成漂亮的 HTML 报告 问题是 我希望能够自动化它 以便它可以在无头服务器上运行 因此 不会有人启动 Rstudio 并按下 knithtml 按钮 而且 Rstudio 似乎正在做很多额外的魔法
  • 添加有关白天/黄昏/夜晚/黎明的信息以在 R 中跟踪数据

    我有一个数据集 其中包含几个月的日期时间 纬度和经度变量的跟踪数据 如下所示 gt start lt as POSIXct 2018 08 01 00 00 00 format Y m d H M S tz UTC gt datetime
  • 使用 R 迭代读取、操作多个 Excel 文件并将它们附加到一个数据帧中

    在一个目录下 我有多个具有相似格式的excel文件 您可以从以下位置下载示例文件 here https www dropbox com s ho3visres55kpoy test zip dl 0 我需要 循环文件和read excel
  • 运行 R.exe 会创建临时文件吗?

    我在想 是否启动 R exewindows创建临时文件并 是否解释类似x lt 5写入那些临时文件 如果创建了临时文件 它们存储在哪里 如果我启动多个 R exe 实例会发生什么情况 他们会共享并覆盖彼此的临时文件吗 R 的每个实例都有自己
  • 更改 ggplot 条形图填充颜色

    有了这个数据 df lt data frame value c 20 50 90 group c 1 2 3 我可以得到一个条形图 df gt ggplot aes x group y value fill value geom col c
  • 将非平凡函数应用于 data.table 的有序子集

    Problem 我正在尝试使用我新发现的 data table 功能 永久 来计算一堆数据的频率内容 如下所示 Sample Channel Trial Voltage Class Subject 1 1 1 196 82253 1 1 1
  • R 中有没有快速替换列值的方法?

    假设我们有一个包含数值的数据框 如下所示 Temperature Height 32 157 31 159 33 139 我想更换Height价值观与pic 00001 pic 00002等等 最终结果是 Temperature Heigh
  • 从 data.frame 创建新列

    我有一个长格式的数据集 其中测量 时间 嵌套在 Networkpartners NP 中 而 Networkpartners NP 又嵌套在人员 ID 中 下面是它的示例 真实数据集有数千行 ID NP Time Outcome 1 11
  • 使用facet时ggplot2控制每行的面板数量?

    Is it possible to control the number of panels per row in a ggplot I can only get an equal number of panels on each row
  • 完全缺失列的 VaR 计算

    我需要计算股票收益的滚动 VaR 从这篇文章 使用rollapply函数使用R进行VaR计算 https stackoverflow com questions 25045612 using rollapply function for v
  • 使用列表中的数据框:删除变量,添加新变量

    定义一个列表dats有两个数据框 df1 and df2 dats lt list df1 data frame a sample 1 3 b sample 11 13 df2 data frame a sample 1 3 b sampl
  • 在R中绘制3x3方形网格

    我得到了一个数字列表 n 9 想将它们画在一个 3 3 的正方形网格中 每个网格填充相应的数字 我如何在 R 中执行此操作而不安装额外的软件包 例如情节 非常感谢 这里有一个ggplot解决方案比我预期的要难一点 Setup the dat
  • geom_密度匹配geom_histogram binwitdh

    我想在 ggplot2 中的分布条形图上添加一条线以显示平均分布 但遇到了麻烦 像这样的 ggplot 调用 ggplot x aes date received geom histogram aes y count binwidth 30
  • 如何在ggplot2中使用希腊符号?

    我的类别需要用希腊字母命名 我在用ggplot2 并且它与数据配合得很好 不幸的是 我无法弄清楚如何将这些希腊符号放在 x 轴上 在刻度线处 并使它们出现在图例中 有什么办法可以做到吗 更新 我看了一下link https github c
  • 为 ggplot 定义新的尺度轴变换

    我正在尝试创建一个squared使用 y 轴变换scales trans new但遇到错误 MWE data data frame x 1 10 y runif 10 z rnorm 10 10 library ggplot2 ggplot

随机推荐

  • DbContext 不返回本地对象

    我正在使用工作单元模式 在 webapi 请求上执行所有操作后调用 dbcontext SaveChanges 在请求的一部分中 我将一个新客户添加到 dbcontext dbContext Customers Add new Custom
  • 未找到 com.google.android.gms.internal.zzaja 的类文件

    我正在使用 Fragment 来设计 Firebase 简单登录注册 我收到错误OnCreateView 初始化方法 auth FirebaseAuth getInstance 错误 错误 58 28 错误 无法访问 zzaja 未找到 c
  • 如何将 C# 变量添加到 html 模态

    In my ASP Net应用程序 我有一个启动模式的按钮 这onClick事件触发启动模式的 C 后台代码 然后 我调用数据表并使用数据表中的值填充字符串变量 protected void uxTicketHistoryButton Cl
  • SQL Server 2008:多语句UDF可以返回UDT吗? [复制]

    这个问题在这里已经有答案了 多语句 UDF 是否有可能返回用户定义的表类型 而不是在其返回参数中定义的表 所以而不是 CREATE FUNCTION MyFunc p1 int p2 char RETURNS SomeVar TABLE c
  • 从用户定义的设置中设置 Info.plist 中的布尔属性

    通过用户定义的设置在 Info plist 文件中设置属性非常简单 只需使用 YOUR SETTING NAME 作为值即可 但是 是否可以对布尔属性执行此操作 布尔值的 plist 文件中的结构是
  • 从 Android 上的 Gmail 应用程序下载附件的意图过滤器

    我有带有意图过滤器 ACTION VIEW 的Android应用程序来打开文件并将其导入到我的应用程序中 我希望将文件附件从 Gmail 应用程序下载到我的应用程序中 某些文件类型 即 jpg png txt 可以正确保存 但有些文件类型则
  • 浮点数输出中的“%!s”是什么?

    我得到的坐标 位置 是 2 个 float64 数字的输出 它看起来像这样 s float64 42 539679 s float64 42 601339 这是我第一次看到这样的东西 那么 s 是什么 TypeOf 表示 s float64
  • 如何在 Spring Boot 中从 application.yml 读取具有特殊字符的属性

    应用程序 yml mobile type mobile codes BlackBerry BBSS Samsung SAMS Samsung Vodafone SAMSVV 从应用程序 yml 文件中读取 三星 沃达丰 密钥时 我们得到了
  • 如何替换 SwiftUI 中已弃用的 .animation() ?

    The animation 修饰符在 iOS 15 中已被弃用 但我不确定我是否理解 Xcode 建议的等效项 animation value works animation easeInOut duration 2 animation w
  • 使用 Mercurial 在多个服务器上自动进行 Web 部署

    最近 当我们开始使用 Mercurial 进行 Web 开发时 我一直在研究 Mercurial 的一些工作流程 我们需要一种自动化的方法来将推送到测试和实时实例的更改传播到多个端点 这是这个想法的示意图 Dev Push V Push L
  • 将日历转换为本地日期

    我决定从 5 5 升级到 Optaplanner 7 5 Nurseroster 但遇到了一些愚蠢的问题 下面是其中之一 我之前使用的例程如下 然而现在新版本需要 LocalDate 我有一个 MySql 数据库后端 用户通过日历选择名册日
  • 插入 SQL VBA

    我试图选择第一个表中但不在第二个表中的记录 并使用 VBA 中的 sql 语句将它们插入到第二个表中 我已在下面启动它 但我不确定为什么它不起作用 我对 sql 相当陌生 因此我们将不胜感激 MySQL INSERT INTO Client
  • 无法将 R 中的因子转换为数字

    我试过了 i lt as numeric as character Impress i lt as numeric as character levels Impress i lt as numeric paste Impress 我总是得
  • 使用 LCDS 将不可变的 Java 类序列化为 ActionScript

    我有一个复杂的对象 该对象由 LCDS DataServices 数据管理进行管理 并使用自定义汇编程序进行创建 更新等 绝大多数对象层次结构都已正确序列化 反序列化 但在序列化不可变的 java 类时我遇到了障碍 在仅使用 java 的世
  • 使用 chrome.storage.local.set 存储数据的安全性如何

    我使用 chrome storage local set 将选项数据存储在 chrome 扩展中 这些数据的安全性如何 有权访问其存储文件的任何人都可以轻松读取它吗 它不安全 并且根据 chrome storage 官方文档 https d
  • 悬停标题文本和背景的本机/默认颜色

    在 chrome firefox 中 将鼠标悬停在元素上会显示其标题 标题为黄色背景和黑色文本 有谁知道exact每种颜色都是十六进制还是 RGB 谢谢 蒂姆 拍摄屏幕截图 在 Photoshop 中打开它 使用颜色选择器查找值 在 OSX
  • C++ Protobuf 添加已分配的重复数字字段

    我有一条简单的消息 其中包含大量重复的数字字段 syntax proto3 option cc enable arenas true message bigData repeated double info 1 在运行时 数据到达时已经分配
  • 如何绘制不断变化的图形

    以前没有这样做过 除了在java中 https stackoverflow com questions 3742731 java how to draw constantly changing graphics 看看怎么样史蒂夫 麦克劳德
  • 当有预定义高度时如何将文本放置在底部!

    这应该是非常微不足道的事情 但事实并非如此 我有一个预定义的锚点高度 我想将文本放置在底部 li a class my text My Text a li 我使用了以下 CSS 但不起作用 文本仍然显示在顶部 a my text backg
  • 在scale_y_log10变换后,背景填充(通过geom_rect)被删除

    我想向使用分组数据 因子 x 轴 和对数刻度 y 轴创建的绘图添加背景填充 添加对数刻度后 背景填充将被删除 这是一个错误 还是我做错了什么 可重现的示例数据 我将使用mtcars数据 但随着cyl变量作为因子 这是模仿我的数据的最简单的数