使用coord_equal()时,使用cowplot::plot_grid()垂直对齐不同高度的图

2023-11-29

我正在尝试使用组合两个 ggplot 对象cowplot::plot_grid()并垂直对齐它们。这通常非常简单,使用align = "v".

dat1 <- data.frame(x = rep(1:10, 2), y = 1:20)
dat2 <- data.frame(x = 1:10, y = 1:10)
plot1 <- ggplot(dat1, aes(x = x, y = y)) + geom_point()
plot2 <- ggplot(dat2, aes(x = x, y = y)) + geom_point()
cowplot::plot_grid(plot1, plot2, ncol = 1, align = "v")

image 1

然而,当 ggplots 使用时,这种方法会失败coord_equal()因为plot_grid()当强制纵横比时无法修改轴。相反,默认设置是保持每个图的高度相同。

plot1 <- ggplot(dat1, aes(x = x, y = y)) + geom_point() + coord_equal()
plot2 <- ggplot(dat2, aes(x = x, y = y)) + geom_point() + coord_equal()
cowplot::plot_grid(plot1, plot2, ncol = 1, align = "v")

image 2

我可以通过玩并获得rel_heights论点恰到好处,但这不是一个可行的解决方案,因为我有许多动态图要构建。这里,y 轴对齐,并且所有轴的坐标仍然相等。

cowplot::plot_grid(plot1, plot2, ncol = 1, align = "v", rel_heights = c(2, 1.07))

image 3

我见过很多解决类似问题的方法ggplot2::ggplotGrob() and grid::grid_draw(),但是当coord_equal()用来。也许最好的解决方案不使用cowplot::plot_grid()根本没有,或者解决方案可能是以某种方式动态确定并将正确的值传递给rel_heights。我想我更喜欢后者,以便能够轻松使用附带的其他功能cowplot::plot_grid()。也许可以找到一些有用的灵感这个相关的方法.


作者cowplot::plot_grid()这里。当您尝试将绘图与使用时生成的指定纵横比对齐时,它不起作用coord_equal()。解决方案是使用egg库或patchwork库。 Patchwork 仍在开发中,但应该很快就会发布到 CRAN。同时,您可以从github安装。

这是使用鸡蛋的解决方案。在我看来,它工作得很好。

library(ggplot2)
library(egg)

dat1 <- data.frame(x = rep(1:10, 2), y = 1:20)
dat2 <- data.frame(x = 1:10, y = 1:10)
plot1 <- ggplot(dat1, aes(x = x, y = y)) + geom_point() + coord_equal()
plot2 <- ggplot(dat2, aes(x = x, y = y)) + geom_point() + coord_equal()
ggarrange(plot1, plot2, ncol = 1)

enter image description here

我看到的两个小问题是(1)两个 y 轴的轴刻度不同,这使得间距看起来不同,(2)轴扩展到不同的限制。您可以通过手动设置刻度和扩展来解决这两个问题。

plot1 <- ggplot(dat1, aes(x = x, y = y)) + geom_point() + 
  scale_y_continuous(limits = c(0, 21), breaks = 5*(0:4), expand = c(0, 0)) +
  coord_equal()
plot2 <- ggplot(dat2, aes(x = x, y = y)) + geom_point() + 
  scale_y_continuous(limits = c(0, 11), breaks = 5*(0:4), expand = c(0, 0)) +
  coord_equal()
ggarrange(plot1, plot2, ncol = 1)

enter image description here

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

使用coord_equal()时,使用cowplot::plot_grid()垂直对齐不同高度的图 的相关文章

  • 数据表中的最大行数

    我的 data table 中有一个包含 8 000 000 行 100 列的数据集 其中每列都是一个计数 我需要找到每行的最大计数以及该最大值位于哪一列 我可以使用以下命令快速获取每行的哪一列具有最大值 dt lt dt maxCol w
  • 在 R 中使用 k-NN 和分类值

    我希望对主要具有分类特征的数据进行分类 为此 欧几里得距离 或任何其他数值假设距离 不适合 我正在寻找 R 的 kNN 实现 其中可以选择不同的距离方法 例如汉明距离 有没有一种方法可以使用常见的 kNN 实现 例如具有不同距离度量函数的
  • 使用 ff 包导入文本文件

    我有一个包含 450 万行和 90 列的文本文件要导入到 R 中 read table我得到了cannot allocate vector of size 错误消息 因此我尝试使用 ff 包导入 然后再对数据进行子集化以提取我感兴趣的观察结
  • 将不规则时间序列拆分为规则月平均值 - R

    为了确定季节性对能源使用的影响 我需要将计费数据库中的能源使用信息与每月温度进行调整 我正在使用一个计费数据集 其中包含不同长度以及开始日期和结束日期的账单 并且我希望获得每个月内每个帐户的月平均值 例如 我有一个计费数据库 具有以下特征
  • 带有 jsessionid 的 R 网络抓取工具

    我正在 R 中测试一些网页抓取脚本 我已经阅读了很多教程 文档并尝试了不同的方法 但到目前为止还没有成功 我试图抓取的网址是this one http www dataescolabrasil inep gov br dataEscolaB
  • 为什么连接终止

    我正在尝试使用随机森林分类模型H2OR 内部的库 训练集有 7000 万行和 25 个数字特征 总文件大小为 5 6 GB 验证文件的大小为 1 GB 我的系统有 16 GB RAM 和 8 核 CPU 系统成功读取 H2O 对象中的两个文
  • R文本文件和文本挖掘...如何加载数据

    我正在使用 R 包tm我想做一些文本挖掘 这是一个文档 被视为一个词袋 我不明白有关如何加载文本文件并创建必要的对象以开始使用诸如 之类的功能的文档 stemDocument x language map IETF Language x 所
  • 如何在R中对多个时间序列应用dtw算法?

    Problem 我有不同车辆速度的时间序列 我的最终目标是根据不同车辆在时间上的速度相似性对它们进行聚类 因此 我基本上需要生成一个距离矩阵 其中每个单元格包含一对车辆速度时间序列之间的距离 我想使用动态时间扭曲 dtw 作为距离度量 所以
  • 如何制作 POSIXct 的空向量

    我想制作一个空向量POSIXct这样我就可以放一个POSIXct in it vec lt vector POSIXct 10 vec vec 1 lt 2014 10 27 18 11 36 PDT vec 那是行不通的 有任何想法吗 由
  • 通过 rpy2 将 numpy 数组传递给 R 时出现不一致数组

    我正在尝试将 numpy 数组传递到 R 中的 GAMLSS 包 import numpy as np import rpy2 robjects as robjects from rpy2 robjects import numpy2ri
  • R 复平面上的多重根

    我一直在尝试找到一个返回方程的所有复数解的函数 例如 16 1 4 2 i0 2 i0 0 i2 0 i2 就目前情况而言 如果我输入16 1 4 进入控制台 它只返回 2 我可以为此编写一个函数 但我想知道在 R 中是否有一种简单的方法可
  • 如何在 purrr::map_df 之后使用映射向量添加列

    我使用 mtcars 数据集作为示例来说明我的问题 我对每种气缸类型进行了线性回归 并使用 map df 将所有模型结果放在一起 下面的代码和输出 我想要做的是添加另一列名为 圆柱体 4 4 6 6 8 8 我怎样才能在map df中做到这
  • 按字符分隔字段中的变量

    我最近问了这个问题单独的字段内容 https stackoverflow com questions 53309849 separate contents of field并得到了一个非常快速且非常简单的答案 我在 Excel 中可以简单地
  • ggplot2 stat_function,具有针对facet_grid内不同数据子集的计算参数

    我有一个关于如何通过的后续问题fitdistr计算参数为stat function see here https stackoverflow com questions 24949065 multiple stat function on
  • 有没有办法在 R Shiny 应用程序加载时自动验证对 GoogleSheets 的访问? Googlesheets4 身份验证问题

    我目前正在使用 R Shiny 应用程序 它利用 googlesheets4 从 GoogleSheet 读取数据 我认识到身份验证对于访问 GoogleSheets 很重要 因此我尝试使用 app R 文件中的以下代码对应用程序进行身份验
  • 使用 knit 以编程方式将 R 块中的图像包含在 .md 文档中

    我想以编程方式在我的 Rmd markdown 文档中包含大量图像 就像是 r echo FALSE cat myfile 1 png 将不起作用 因为结果 md输出是 myfile 1 png 我需要去掉代码标签 和领先的 是否有一个选项
  • ggplot - 标签为计算的增加 (%)

    我已经开发了一个 ggplot 图 但现在我正在尝试添加计算标签 该标签显示同比增长百分比 我的数据框非常简单 主数据集聚合的结果 data frame 4 obs of 3 variables Year int 2011 2012 201
  • R:连接到 Teradata 时 JDBC() 找不到 Java 驱动程序路径

    我正在尝试通过 RStudio 连接到 Teradata 但由于某种原因 JDBC 函数在识别 Java 驱动程序所在的路径时出现问题 请参阅下面的代码 library RODBC library RJDBC library rJava b
  • 如何在 R闪亮中使操作不间断

    在我闪亮的应用程序中 我有一个应该不断更新自身的输出 但是每当我执行长时间运行的计算时 输出就会暂停 我的问题是 如何让输出持续不间断地运行 请参阅下面的简短演示 时钟每一秒刷新一次 但如果我单击运行 5 秒的按钮 时钟就会暂停 libra
  • 将列类型转换为数字时更改值

    我有一个具有上面格式的数据文件 我将其加载到 R 中 并尝试使用 dist 列中的值绘制直方图 但出现错误 x 必须是数字 因此我尝试更改格式 gt head data V1 V2 1 type gene dist 2 A 64667 3

随机推荐

  • 如何删除UIWebView的所有cookie?

    在我的应用程序中 我有一个UIWebview加载用于登录的 linkedin 身份验证页面 当用户登录时 cookie 会保存到应用程序中 我的应用程序有一个与 linkedin 登录无关的注销按钮 因此 当用户单击此按钮时 他将从应用程序
  • 使用struts 2和hibernate在jsp页面中显示Blob(图像)

    我设法将图像作为 Blob 存储在我的 mysql 数据库中 我也在使用休眠 现在我正在尝试加载该图像并将其发送到 jsp 页面上 以便用户可以查看该图像 这是我的 struts 2 动作类 import java io File impo
  • 如何捕捉父控件调整大小的时刻?

    我有一个源自 TWinControl 的可视化组件 当组件的父控件大小调整后 我需要在组件中做一些工作 一般情况下 我的组件的 对齐 属性是 alNone 如何捕获父控件调整大小的事件 是否可以 如果 TWinControl 父级 的大小发
  • 是否可以使用 Autodesk.AutoCAD.Interop 在 AutoCAD 中编辑块属性?

    我开发了一个外部 WPF 应用程序来用 C 生成绘图 我已经能够使用 Autodesk AutoCAD Interop 绘制 标注尺寸 添加块以及应用程序所需的所有其他内容 但是我似乎无法填充标题栏或生成零件列表 我见过的所有示例都基于要求
  • prometheus relabel_config 删除操作不起作用

    我一直在尝试删除未使用的指标 在抓取之前 以减轻 Prometheus 集群上的负载relabel configs job name nginx ingress controller metrics kubernetes sd config
  • 表不是由 Hibernate 创建的

    我注释了一堆 POJO 以便 JPA 可以使用它们在 Hibernate 中创建表 看起来除了一个名为 Revision 的非常核心的表之外 所有表都已创建 Revision 类有一个 Entity name RevisionT 注解 因此
  • python3 cvxopt.matrix 和 numpy.array 之间的转换

    蟒蛇 蟒蛇3 2 CVXOPT 1 1 5 numpy 1 6 1 I read http abel ee ucla edu cvxopt examples tutorial numpy html import cvxopt import
  • 计算两个日期之间的工作日数

    我正在尝试获取 plpgsql 中两个日期之间的工作日数 以下是我的代码 CREATE FUNCTION weekdays DATE DATE RETURNS INTEGER AS DECLARE d date 1 weekdays int
  • Google GeoCoding API - 返回 ZERO_RESULTS 但位置显示在 Google 地图上

    我正在使用 Google GeoCode API 从地址搜索位置并获取该位置的 LAT LON 信息 从API我总是得到ZERO RESULTS就好像我从谷歌地图中搜索地址一样 它会显示位置 我搜索的地址是 5989 Route 6N Ed
  • 如何证明 Coq 中的两个 Fibonacci 实现相等?

    我有两个斐波那契实现 如下所示 我想证明它们在功能上是等效的 我已经证明了自然数的性质 但是这个练习需要另一种我无法弄清楚的方法 我使用的教科书介绍了 Coq 的以下语法 因此应该可以使用这种表示法来证明相等性
  • Grand Central Dispatch 中线程限制的解决方法?

    With 大中央快讯 可以轻松地在非主线程上执行耗时的任务 避免阻塞主线程并保持 UI 响应 只需使用dispatch async并在全局并发队列上执行任务 dispatch async dispatch get global queue
  • VBA计算图表对象中的系列数

    我知道这看起来很简单 但似乎对我不起作用 我在 Sheet1 上有一个图表 这是该表上唯一的图表 我想获取图表中的系列数 所以我用 Debug Print ThisWorkbook Sheets Sheet1 ChartObjects 1
  • 使用非 root 用户时出现 ffmpeg 错误

    我已经安装了 ffmpeg 如果您是 root 或使用 sudo 它可以完美工作 但在尝试作为非 root 用户使用它时会出错 我在测试 VPS 上执行了相同的安装 安装没有问题 因此它似乎与此 cPanel 服务器隔离 我无法确定原因 非
  • 如何为Python编译C扩展,其中C函数使用LAPACK库?

    我为 Python 编写了一个 C 扩展 并且该模块已成功编译在 so 文件中 但是 当我尝试在 Python 端使用包装的 C 函数 Python 中调用包装的 C 函数的测试代码 时 我得到以下信息ImportError ImportE
  • 如何在android回收站视图中放置Admob本机高级广告?

    我想将 admob 原生高级广告放置在 Android 应用程序中回收器视图的每 3 个位置 我想要 Admob 提供的模板 https github com googleads googleads mobile android nativ
  • 透明图像中的javafx鼠标事件

    如果您单击或拖动透明像素 JavaFx ImageView 不会触发鼠标事件 例如按下或拖动 是否有办法解决此问题并检测来自透明区域的鼠标事件 I have this image that i added into this very si
  • 我应该如何从 Selenium Java WebDriver 与 Flash 进行最佳交互

    我知道有很多类似的问题 例如 使用 WebDriver 交互 Flash 元素 过去曾被问到 但目前尚不清楚如何最好地与与 Selenium 的 Java WebDriver 相关的页面上的 Flash 元素进行交互 默认情况下 我知道它不
  • Java MySQL 准备语句批处理

    我正在尝试使用准备好的语句批处理 但遇到问题 以下代码不会给我错误 但它仅在表中插入地图的最后一个键 我不知道为什么 这肯定是一个非常愚蠢的错误 但这是我第一次使用 addBatch 方法 Class forName com mysql j
  • 使用 ScreenCapture.CaptureScreenshot 捕获并保存屏幕截图

    我一直在尝试截取屏幕截图 然后立即使用它来显示某种预览 有时它有效 有时则无效 我目前不在工作 而且我没有统一这台计算机 所以我将尝试即时重新创建它 这里和那里可能存在一些语法错误 public GameObject screenshotP
  • 使用coord_equal()时,使用cowplot::plot_grid()垂直对齐不同高度的图

    我正在尝试使用组合两个 ggplot 对象cowplot plot grid 并垂直对齐它们 这通常非常简单 使用align v dat1 lt data frame x rep 1 10 2 y 1 20 dat2 lt data fra