组合 ggplot2 对象时设置拼凑中的轴限制

2024-02-23

组合时ggplot2对象使用拼凑而成 https://patchwork.data-imaginist.com/index.html我希望能够有一个选项,可以轻松地为所有图设置一个选项,使其具有相同的 x 轴和/或 y 轴范围。

reprex:

library(patchwork)
library(ggplot2)
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

p1 <- mtcars %>% 
  ggplot() + 
  geom_point(aes(mpg, disp)) + 
  ggtitle('Plot 1')

p2 <- mtcars %>% 
  filter(disp < 300) %>% 
  ggplot() + 
  geom_point(aes(mpg, disp)) + 
  ggtitle('Plot 2')

p1 + p2

Created on 2020-02-01 by the reprex package https://reprex.tidyverse.org (v0.3.0)

预期结果将其设置为在两个图中具有相同范围的两个轴:

library(patchwork)
library(ggplot2)
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

p1 <- mtcars %>% 
  ggplot() + 
  geom_point(aes(mpg, disp)) + 
  ggtitle('Plot 1')

p2 <- mtcars %>% 
  filter(disp < 300) %>% 
  ggplot() + 
  geom_point(aes(mpg, disp)) + 
  ggtitle('Plot 2') +
  xlim(ggplot_build(p1)$layout$panel_scales_x[[1]]$range$range) +
  ylim(ggplot_build(p1)$layout$panel_scales_y[[1]]$range$range)

p1 + p2

Created on 2020-02-01 by the reprex package https://reprex.tidyverse.org (v0.3.0)

有人有什么想法吗?


好吧,我很抱歉回答我自己的问题,但我刚刚找到了解决方案..

这可以通过使用很好地实现&,它将函数应用于拼凑对象中的所有绘图。

1)代表:

library(patchwork)
library(ggplot2)
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

p1 <- mtcars %>% 
  ggplot() + 
  geom_point(aes(mpg, disp)) + 
  ggtitle('Plot 1')

p2 <- mtcars %>% 
  filter(disp < 300) %>% 
  ggplot() + 
  geom_point(aes(mpg, disp)) + 
  ggtitle('Plot 2')

p_combined <- p1 + p2

p_combined

Created on 2020-02-01 by the reprex package https://reprex.tidyverse.org (v0.3.0)

2) 获取范围内的最小值和最大值:

p_ranges_x <- c(ggplot_build(p_combined[[1]])$layout$panel_scales_x[[1]]$range$range,
  ggplot_build(p_combined[[2]])$layout$panel_scales_x[[1]]$range$range)

p_ranges_y <- c(ggplot_build(p_combined[[1]])$layout$panel_scales_y[[1]]$range$range,
                ggplot_build(p_combined[[2]])$layout$panel_scales_y[[1]]$range$range)

3) 将这些范围应用于拼凑对象:

p_combined & 
  xlim(min(p_ranges_x), max(p_ranges_x)) & 
  ylim(min(p_ranges_y), max(p_ranges_y))

Created on 2020-02-01 by the reprex package https://reprex.tidyverse.org (v0.3.0)

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

组合 ggplot2 对象时设置拼凑中的轴限制 的相关文章

  • 如何缩放(标准化)每列内的 ggplot2 stat_bin2d 值(按 X 轴)

    我有一个 ggplot stat bin2d 热图 library ggplot2 value lt rep 1 5 1000 df lt as data frame value df group lt rep 1 7 len 5000 d
  • 计算数据帧 R 中字符串的频率

    我想计算数据框中某些字符串的频率 strings lt c pi pie piece pin pinned post df lt as data frame strings 然后我想计算字符串的频率 counts lt c pi in pi
  • 如何在r中进行左连接[重复]

    这个问题在这里已经有答案了 我有两个数据集一和二 数据集一 a b c 111 a 1 112 b 2 113 c 3 114 d 4 115 e 5 数据集二 e d g 222 ss 11 111 ff 22 113 ww 33 114
  • 删除绘图轴值

    我只是想知道是否有一种方法可以消除 r 图中的轴值 分别是 x 轴或 y 轴 我知道axes false将摆脱整个轴 但我只想摆脱编号 删除 x 轴或 y 轴上的编号 plot 1 10 xaxt n plot 1 10 yaxt n 如果
  • R tm 包创建 N 个最常见术语的矩阵

    我有一个termDocumentMatrix使用创建的tmR 中的包 我正在尝试创建一个包含 50 个最常出现的术语的矩阵 数据框 当我尝试转换为矩阵时 出现此错误 gt ap m lt as matrix mydata dtm Error
  • 如何在R中的2行之间交换多个值

    我有一个大小为 10x100 的矩阵 如何交换前 30 列中第 1 行和第 2 行之间的值 我们可以反转前两行的行索引以及通过采取序列创建的列索引rounded 30 总列数用于交换行中的值 colS lt seq round ncol m
  • 如何在 R 中创建循环来生成随机样本列表?

    我正在尝试创建一个循环来创建一系列包含随机样本的对象 如下所示 sample lt ceiling runif 9 min 0 max 20 这是圆形制服的示例 但它可以替换为普通 泊松或任何您想要的 因此 我构建了一个循环来自动生成各种生
  • RPostgreSQL 无法关闭连接

    我有一个闪亮的应用程序 使用它连接到数据库RPostgreSQL 在应用程序结束时 连接关闭 驱动程序应该被卸载 但我收到错误 警告我连接未关闭 代码看起来像这样 in the app R file but not in the serve
  • 通过 rpy 将 SPSS 文件(.sav)导入 pandas 时如何保留标签?

    我正在寻找使用 SPSS 文件 sav pandas 在没有 SPSS 程序的情况下 典型文件转换为 csv 后的样子如下 在调查前两行的含义时 我不知道 SPSS 似乎第一行包含Labels 而第二行包含VarNames 当我将文件带入
  • 使用开源闪亮服务器时,我的图标不会显示在我的应用程序的浏览器选项卡上

    我一直在尝试找到一种方法将 ico 与托管在开源闪亮服务器上的闪亮应用程序的快捷方式关联起来 最终 我希望 ico 显示为我的应用程序快捷方式的图形 而且 我希望用户在创建应用程序的快捷方式时显示 可用此图标 听起来很简单 但事实证明这是一
  • R 在读取文件时添加额外的数字

    我一直在尝试读取一个包含日期字段和数字字段的文件 我的数据在 Excel 工作表中 如下所示 Date X 1 25 2008 0 0023456 12 23 2008 0 001987 当我在 R 中使用readxl read xlsx函
  • 使用cowplot包的多重图的中心X轴标签

    我有一个多图图形 由 2x2 配置中的 4 个图组成 我使用 cowplot 包和plot grid函数使用下面的代码排列了绘图 plot grid p1 p2 p3 p4 align vh vjust 1 scale 1 其中 p1 p4
  • 确定 R 中的组是否重复某个值

    我有一个包含许多列和行的数据 我想通过创建新的逻辑变量来确定某个组的值是否重复 相同 所以我的数据如下所示 v0 lt c 1 2 3 4 5 6 7 8 9 v1 lt c a b a c e c b b e v2 lt c R NA R
  • 使用 ape 包在 R 中进行标签和色叶树状图(系统发育)

    继上一篇文章之后 r 中的标签和彩色叶树状图 https stackoverflow com questions 18802519 label and color leaf dendrogram in r 我有一个后续问题 我的问题与提到的
  • r testthat 和 covr 在非包库中使用

    我希望能够使用testthat and covr在一个项目中not一个 r 包 事实上不使用任何第三方服务 只是普通的旧 r 源文件的集合 我正在努力找出这是否可行 如果可以 则已设置有关如何设置的说明 我发现假设你正在编写一个 r 包 我
  • 指定生存图的自定义时间点

    我正在努力使用以下方法创建生存 累积事件图ggsurvplot函数从survminer包裹 我想为我的绘图指定自定义时间点 但我不知道该怎么做 这xlim and break x by参数有点帮助 但它们创建了均匀间隔的时间点和比我想要的更
  • 如何在 R 中绘制预测的子集?

    我有一个简单的 R 脚本来根据文件创建预测 自 2014 年以来就有数据记录 但我在尝试实现以下两个目标时遇到了困难 仅绘制预测信息的子集 从 11 2017 开始 以特定格式包含月份和年份 即 6 月 17 日 这是链接到dataset
  • R CMD 检查警告:在文档对象中使用的函数/方法...但不在代码中

    我正在写一个包 但一个持久的R CMD check警告阻止我完成包裹并将其发布到 CRAN 我用roxygen2对于内联文档 尽管这可能不是错误的根本原因 如果您知道如何删除此警告 我很可能可以找到一种方法来使用roxygen2 如何删除警
  • 如何在 rmarkdown 中显示带有 results='asis' 的格式化 R 输出

    当使用 results asis 时 有没有办法在 rmarkdown knitr 中显示格式化程序 R 输出 一个例子是以下函数 myfun lt function cat hello n cat c one 1 two 2 然后 该块将
  • 如何拆分 data.frame -> 将合并应用于子集 -> 合并到 data.frame 中

    我真的不知道如何在不使用 for 循环的情况下实现这一目标 x lt c a b c d gt x 1 a b c d data lt data frame x c a b a b c a a b c d name c one one tw

随机推荐

  • PHP exec() 不适用于 ffmpeg

    我尝试在 PHP 中运行以下命令 在 Ubuntu 上
  • Entity Framework Core 2.2:禁用特定实体的迁移

    我正在尝试在已创建数据库的现有系统上构建一个 aspnetcore 应用程序 并且我将在其上添加一些表 我对数据库进行了逆向工程 将现有表作为实体添加到我的应用程序中 并且我编写了自己的实体 稍后将添加这些实体 最后 所有实体都添加到单个
  • JQuery Mobile:聚焦输入文本不尊重 z-index,出现在其他所有内容之上

    我有一个带有 jQ uery Mobile 的 Android Phonegap 应用程序 在 HTC Desire 上 如果输入框获得焦点 则无论上面有哪些元素 它始终会转到前面 您是否尝试应用CSS属性 webkit transform
  • iOS - UISlider 的自定义图像

    我想为 UISlider 轨道使用图像 我不希望拇指的左边有一种颜色 右边有另一种颜色 我只想要一张横跨整个赛道的静态图像 可能的 要将图像设置到滑块 您可以使用设置最小轨迹图像 设置最大轨迹图像方法 根据您的要求 将两者设置为同一图像 i
  • 适用于打字稿的编辑器和调试器

    我正在开发一个nodejs 项目 其中所有代码都是用打字稿编写的 它遵循微服务模式 每个微服务都是一个独立的项目 因此需要同时打开和调试许多项目 我尝试了 webstorm 和 Visual Studio 使用 NTVS 但对它们都不满意
  • PYQT5画线[重复]

    这个问题在这里已经有答案了 def init self super init self title Main menu self left 80 self top 80 self width 1500 self height 1000 se
  • Oracle XML:跳过不存在的节点

    我在将 xml 数据插入到 oracle 表中时遇到问题 这是我的 xml
  • 简单的 Kafka Consumer 未收到消息

    我是 Kafka 的新手 正在运行一个简单的 Kafka 消费者 生产者示例 如上所示Kafka消费者 https kafka apache org 0102 javadoc index html org apache kafka clie
  • 生成随机确定性有限自动机的算法是什么?

    DFA 必须具有以下四个属性 DFA 有 N 个节点 每个节点有 2 个传出转换 每个节点都可以从其他每个节点访问 从所有可能性中以完全一致的随机性选择 DFA 这是我到目前为止所拥有的 从 N 个节点的集合开始 选择一个尚未选择的节点 将
  • 使用委托和 Lambda 的奇怪行为

    作为在我正在开发的库中引入惰性格式化评估的一种方法 我定义了委托 public delegate string MessageFormatterDelegate string message params object arguments
  • 什么是Android UiThread(UI线程)

    有人可以向我解释一下 UI 线程到底是什么吗 在developer android com上它提到了runOnUiThread函数 公共最终无效runOnUiThread 可运行操作 从以下版本开始 API 级别 1 在 UI 线程上运行指
  • 如何让 NHibernate 停止使用 nvarchar(4000) 来插入参数字符串?

    我需要优化由域实体上的保存 插入查询 生成的查询 我已经使用 Fluent NHibernate 配置了 NHibernate 以下是 NHibernate 在插入用户对投票的响应期间生成的查询 exec sp executesql N I
  • 简洁表达数学公式的语法建议

    我正在 C 中开发功能域特定的嵌入式语言 以尽可能简洁 准确地将公式转换为工作代码 我在评论中发布了一个原型 大约有两百行长 现在我的语言看起来像这样 嗯 实际上看起来像这样 implies two nested loops j 0 N i
  • 如何阻止 GD2 在调整图像大小时洗掉颜色?

    我使用 CodeIgniter 1 7 开发了一个照片共享社区网站 成员上传的照片会自动调整为多种格式的大小 为此我使用 CodeIgniter Image Manipulation 类 该类内置于框架中 基本上是多个图像处理库的包装器 例
  • 如何在Android地图上的另一个图像中显示图像?

    我想在地图上的另一个图像中显示图像 like 这里红色的图像是不同的图像 而黑色的偶像图像是不同的 public Bitmap mergeBitmaps Bitmap manBitmap try Bitmap markerBitmap Bi
  • cakephp 3 显示没有时间的日期

    CakePHP 3 我有一个数据库字段 它是日期 不是日期时间也不是时间戳 当我显示 echo contact gt date 它会显示类似的内容2014 01 06 0 00 如何隐藏小时和分钟 I tried print this gt
  • Debian 9 + PHP7.0-FPM + NGINX 1.10.3-1 path_info 问题

    我正在使用 DigitalOcean Debian 9 PHP 7 0 NGINX 1 10 3 1 并尝试安装 Joomla CMS 但在第一个安装屏幕 example com installation index php 上 我注意到一
  • Selenium + Java 的 elementToBeClickable 问题

    所以 我有一个隐藏在警报下的元素 警报持续 10 秒 之后用户可以单击该元素 这是我处理这种情况的代码 WebElement create driver findElement By cssSelector div action menu
  • C# 根据 XSD 验证 XML [重复]

    这个问题在这里已经有答案了 可能的重复 使用 XSD 架构进行 Xml 验证 https stackoverflow com questions 572853 xml validation using xsd schema 我使用一些 C
  • 组合 ggplot2 对象时设置拼凑中的轴限制

    组合时ggplot2对象使用拼凑而成 https patchwork data imaginist com index html我希望能够有一个选项 可以轻松地为所有图设置一个选项 使其具有相同的 x 轴和 或 y 轴范围 reprex l