图标题 学名 + textGrob gtable 中的符号

2023-12-03

首先,我要感谢 Baptiste 爵士帮助我改进 R 脚本,使用 gtable/textGrob 在组合图的左下角添加标题,如下所示:

library(grid)
library(gridExtra)
library(ggplot2)

p1 <- p2 <- ggplot()

g1 <- ggplotGrob(p1)
g2 <- ggplotGrob(p2)

g <- rbind(g1, g2)
caption <- textGrob("Figure 1. This is a caption", hjust=0, x=0)
g <- gtable::gtable_add_rows(g, unit(2,"mm") + grobHeight(caption), -1)
g <- gtable::gtable_add_grob(g, caption, nrow(g), l = 4, r = ncol(g))
grid.newpage()
grid.draw(g)

不过,我还想补充两点:

(1) 在标题中插入学名,该学名应以斜体书写。 - 例如,根据上面提到的标题,我只想将“is”一词斜体化,而其余部分则采用纯文本形式。

(2) 我还会在标题中添加符号,例如点形状=c(1,22);颜色=c(“黑色”,“红色”);填充=c(“红色”,“黑色”)。

我要怎么做这些呢?我是 R 程序的新手,因此非常感谢您的帮助。谢谢。

UPDATE:

我已经使用以下脚本在 @Docconcoct、@user20650 和 @baptiste 的帮助下解决了查询 1:

library(grid)
library(gridExtra)
library(ggplot2)

g1 <- ggplotGrob(pl)
g2 <- ggplotGrob(pl1)

g <- rbind(g1, g2)
caption <- textGrob(expression(paste("Figure 1. This",  italic(" is"), " a caption")), hjust=0, x=0)
g <- gtable::gtable_add_rows(g, unit(2,"mm") + grobHeight(caption), -1)
g <- gtable::gtable_add_grob(g, caption, nrow(g), l = 4, r = ncol(g))
grid.newpage()
grid.draw(g)

对于查询 2,正如 @baptiste 爵士在我给他的原始电子邮件中所述,我已经有了关于组合图的图例。然而,在图标题中,我需要说明图例中的这些符号的含义,以及绘图的一些其他细节。根据巴蒂斯特爵士给出的例子,我需要在标题中包含supp的含义,以及OJ(黑圈)和VC(黑三角形)的符号。

再次非常感谢!


根据评论,我建议采用以下策略:使用图形标题(文本)作为图例标题创建一个虚拟图,提取其图例,并将其放置在 gtable 的底部。

library(grid)
library(gridExtra)
library(ggplot2)
library(gtable)

p1 <- ggplot()
p2 <- ggplot(ToothGrowth, aes(len, dose, shape=supp)) + geom_point() +
  theme(legend.position="bottom", 
        legend.background=element_rect(colour="black")) 

title <- expression("Figure 1. This "*italic(is)*" now a legendary caption")
dummy <- ggplotGrob(p2 + guides(shape = guide_legend(title = title)))

g1 <- ggplotGrob(p1)
g2 <- ggplotGrob(p2)
caption <- gtable_filter(dummy,"guide")[["grobs"]][[1]]
caption$widths <- grid:::unit.list(caption$widths)
caption$widths <- unit.c(unit(0,"mm"), caption$widths[2], unit(1,"null"))

g <- rbind(g1, g2)
g <- gtable::gtable_add_rows(g, unit(2,"mm") + grobHeight(caption), -1)
g <- gtable::gtable_add_grob(g, caption, nrow(g), l = 4, r = ncol(g))
grid.newpage()
grid.draw(legend)
grid.draw(g)

enter image description here

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

图标题 学名 + textGrob gtable 中的符号 的相关文章

  • 如何在Shiny中引用ui.R中的反应元素

    我正在使用 ShinyDND 包制作一个具有拖放功能的应用程序 我想将输入中的列表作为 DragSetUI 的参数传递 该函数需要在 ui R 中运行 我尝试了renderUI和uiOutput 它几乎可以工作 但是拖动的元素无法放置在放置
  • R:重新列出平面列表

    这个问题 https stackoverflow com questions 8139677有一个很好的解决方案 可以在保留列表数据类型的同时展平列表 其中unlist才不是 flatten function x unlist vector
  • R Shinydashboard 根据选项卡选择显示/隐藏 UI 元素

    如果有人可以提供帮助 我正在努力满足要求 我必须根据用户的选项卡面板选择在仪表板侧栏上显示 隐藏一些元素 这是 UI 代码的一部分 可让您了解我的应用程序的结构 我需要仅在 tabpPanel 2 上显示 Fourthoutput Fift
  • 如何为每个条形图制作具有定义水平边框的堆叠条形图

    我有一些数据想以一种我不知道如何在条形图中显示的方式 希望你能帮我解决这个问题 我的表由 4 列组成 簇 0 6 IgG Status mild high mild low Severe High 患者 1 16 和值 每个簇的标准化值 这
  • 如何在函数和循环中使用 data.table?

    在评估效用时data table vs dplyr 一个关键因素是在函数和循环中使用它的能力 为此 我修改了本文中使用的代码片段 data table 与 dplyr 一个可以做得很好而另一个不能做或做得很差吗 https stackove
  • 加载 plyr 包时出现问题

    我使用 R 2 13 1 但未能成功尝试在 R 中加载包 plyr 1 6 我已将其手动安装到目录 R library 中 我的代码是 libPaths R library library plyr 我收到消息 库 plyr 中的错误 pl
  • R 用簇绘制热图,但隐藏树状图

    默认情况下 Rheatmap将聚集行和列 mtscaled as matrix scale mtcars heatmap mtscaled scale none 我可以禁用集群 heatmap mtscaled Colv NA Rowv N
  • 如何使用键盘命令中断 R 中正在运行的代码?

    如何中断 R 中正在运行的脚本 假设我遇到无限循环或其他问题 并且我想停止脚本运行 有键盘命令可以做到这一点吗 如果有帮助的话 在 Python 中是 Ctrl c 我在R中尝试过 但没有成功 自我回答 几乎是其他人的评论和答案的总结 In
  • 在 R 中绘制决策树(插入符)

    我已经训练了一个数据集rf方法 例如 ctrl lt trainControl method LGOCV repeats 3 savePred TRUE verboseIter TRUE preProcOptions list thresh
  • rgdax(coinbase)数据未按预期收集数据

    我正在尝试使用rgdaxR 包用于下载一些历史价格 我设置了 API 密钥等 并尝试在过去 24 小时内加载 start lt strftime Sys time Y m dT H M SZ tz UTC end lt strftime S
  • 如果在循环中调用summary()命令,如何获得它的输出?

    Suppose Z是特征名称的向量 如何让以下 Rscript 中的摘要命令实际打印 for var in Z cat i form paste crim var lm fit lm form data Boston summary lm
  • R中的预测和预测函数之间的区别

    两者之间有什么区别吗predict and forecast R 中的函数 如果是 在哪些具体情况下应该使用它们 Intro predict 适用于多种 R 对象 模型 基础库的一部分 forecast 对于时间序列 预测包的一部分 参见示
  • r - 根据第一个向量重新排序第二个向量

    寻找解决方案来执行以下操作 有两个向量 a lt c 2 1 3 4 7 6 5 9 8 10 b lt c 3 2 1 6 5 4 7 8 9 10 我想创建第三个向量 它给出向量的顺序b需要重新排序 使其顺序与a 在这种情况下我想得到
  • 使用两列数据分割数据帧并对结果数据帧列表应用通用转换

    我想根据两列中的值将一个大数据帧拆分为一个数据帧列表 然后 我想对结果列表中的所有数据帧应用通用数据转换 滞后转换 我知道 split 命令 但只能让它一次处理一列数据 您需要将所有想要分割的因素放在一个列表中 例如 split mtcar
  • 在ggplot2中绘制大多边形地图的小区域

    我有一个 shapefile 我使用它在 ggplot2 中进行了强化和绘制geom polygon 我怎样才能只绘制这张地图的一小部分区域 我的完整地图看起来不错 但我的小区域很混乱 这是一个工作示例 这个小形状文件可以从以下位置获得 h
  • 难以理解 R 中双括号和单括号子集之间的区别[重复]

    这个问题在这里已经有答案了 我很难理解双括号子集和单括号子集之间的区别 我在开源编程方面相当陌生 我很难理解 R 中的 help 函数 因为考虑到我目前对 R 的理解 其中的一些信息对我来说太技术性了 我尝试过谷歌搜索差异 虽然它给了我一个
  • 基于列重复数据集中的行,但增加行[重复]

    这个问题在这里已经有答案了 我有一个数据集 其中包含项目名称 开始年份和合同期限 我需要将这个数据集开发成时间序列 例如 我的数据集中的一行是 项目 A 开始年份 2003 年 合同期限 5 我想根据合同期限重复每一行 我的数据集如下所示
  • 从 glmnet 获取变量选择顺序

    我一直在使用 glmnet R 包为一个目标变量 Y 数字 和 762 个协变量构建 LASSO 回归模型 我使用 glmnet 函数 然后coef fit s 0 056360 获取该特定 lambda 值的系数值 我现在需要的是变量选择
  • 拆分并保存在新的 data.frames 中

    我有一个大 data frame 144 列 我想将其分成每组 3 列 子文件或子 data frame 然后将子 data frame 保存在单独的文件中 换句话说 file1 将包含从 1 到 3 的列 file2 将包含从 6 到 9
  • 是否有 R 函数可以将这些数据从长形重塑为宽形?

    数据现在看起来如何 Coach ID Student score 1 A 8 1 B 3 2 A 5 2 B 4 2 C 7 看起来像这样 Coach ID Student score student 2 score 2 student 3

随机推荐

  • ASP.NET MVC 中的“请等待”页面

    一个页面执行多个任务 处理时间较长 我们希望在每项任务完成时向用户提供反馈 在 ASP NET Webforms 中我们使用Response Flush 在 ASP NET MVC 中您会采取什么方式解决这个问题 您仍然可以使用 Respo
  • 使用自定义删除器增强智能指针

    我可以理解boost shared ptr不验证NULL在调用自定义删除器函数之前 但我该如何实现这一点呢 这将帮助我避免编写愚蠢的包装器fclose或任何未 正确 指定行为的函数 我的提升 define BOOST VERSION 104
  • Django 注册激活重定向与 django.contrib.messages

    我正在尝试设置我的 django 注册激活工作流程 以便当用户点击激活链接时 它会使用 django 消息框架将他们重定向到登录页面 并显示一条漂亮的小消息django contrib messages 现在 我已经成功使用以下命令将用户发
  • 在共享首选项中设置默认值

    有没有一种方法可以在共享首选项中设置默认值 这是我的加载首选项代码 public void LoadPreferences SharedPreferences sharedPreferences getSharedPreferences v
  • 是否可以在 Git 中只拉取一个文件?

    我正在开发一个有一些损坏测试的 Git 分支 我想从另一个已经修复的分支中提取 合并更改 而不仅仅是覆盖 这些测试 我知道我能做到 git pull origin that other branch 但这将尝试合并许多其他文件 因为我还没有
  • 如何根据列值将 CSV 文件拆分为多个文件

    我有 CSV 文件 可能如下所示 name1 1 11880 name2 1 260 483 name3 1 3355 82 name4 1 4179 48 name1 2 10740 4 name2 2 1868 69 name3 2 3
  • 求解线性方程

    我需要以编程方式求解 C Objective C 或 如果需要 C 中的线性方程组 以下是方程式的示例 44 3940 a 50 0 b 37 0 tx 45 3049 a 43 0 b 39 0 tx 44 9594 a 52 0 b 4
  • 将数组的内容添加到组合框

    我有一个数组 在另一个类中 其中有 10 个值 我想将此数组的值添加到组合框中 这可能吗 谢谢 是的 一般来说 你可以这样做 JComboBox b new JComboBox new String String1 String2 是 有一
  • 适用于桌面客户端的 Gmail IMAP OAuth

    最近 Google 宣布他们支持 Gmail IMAP SMTP 的 OAUth 我浏览了他们的多个文档 但我仍然对他们是否支持已安装应用程序的 OAuth 感到困惑 1 In 本文档他们说 注意 虽然OAuth协议 支持桌面 安装 应用程
  • 在 IIS 7 中使用会话时出错

    将我的网站部署到 IIS 后 我在尝试访问会话时收到以下错误消息 会话状态只能在以下情况下使用 enableSessionState 设置为 true 在配置文件中或在 页面指 令 还请使 确定 System Web SessionStat
  • 填充 Internet Explorer 输入框

    我读了很多关于我的问题的答案 但不知何故 如果我尝试 模仿 我所看到的 我仍然无法做我需要的事情 问题很简单 在打开的 IE 页面上填写一个输入框 结果 代码卡在了线上getelementbyid显示运行时错误 424 需要对象 Priva
  • 编程珍珠:在 40 亿个整数的文件中查找丢失的整数

    Question 输入位于顺序文件上 该文件最多包含 40 亿个整数 找出缺失的整数 Solution据我的理解 制作两个临时文件 一个以 0 开头 另一个以 1 开头 两羽鸽子 4 3B 鸽子和 4B 鸽子 之一必须低于 2B 选择文件并
  • Chrome 扩展中的选择和站点搜索

    我正在尝试编写接受用户选择的单词和用户定义的谷歌浏览器扩展 网站并在该网站上搜索这个词 通过 Google 和上下文菜单 选项页面中有一个表单 用户在表单字段中输入站点 字段 站点的数量可变 用户指定 哪些站点以及多少个 所有站点都保存到数
  • 在函数中声明数组是不好的做法吗

    努力只问我在这里真正寻找的东西 我真的只关心是否被认为是不好的做法 或者不声明如下所示的大小可能变化的数组 如果是 我通常会用 malloc 代替 void MyFunction int size do a bunch of stuff s
  • 扩展界面和悬停提示

    我正在 VS Code 中使用 TypeScript 我有三个接口 A B and C 每个都有两个属性 C延伸A and B interface A A1 boolean A2 boolean interface B B1 boolean
  • jQuery,阻止表单提交输入,但允许表单通过按钮单击提交[重复]

    这个问题在这里已经有答案了 我有一个表单 在输入文本框中输入一个数字并按 ENTER 键 然后使用 jQuery 将值附加到文本区域 这一切都很好 我遇到的问题是 如果我添加一个提交按钮来提交表单 那么只要我按 ENTER 键 它就会提交表
  • 如何将对象解构为已定义的变量? [复制]

    这个问题在这里已经有答案了 以下产生语法错误 let source screenings size source screenings a size b screenings size source 预期结果 screenings shou
  • Javascript 日期在 iOS 上无效

    我正在开发一个基于 Phonegap 的 iOS 应用程序 该应用程序已经为 Android 做好了 以下几行适用于 Android 但不适用于 iOS 为什么 var d new Date 2015 12 31 00 00 00 cons
  • 自定义 Woocommerce 店面主页上显示的产品

    我已经绞尽脑汁思考了太久 但找不到解决方案 我尝试过使用插件来连接 woo 商务文档和店面文档 但没有成功 默认情况下 主题有 新品 和 畅销商品 其中列出了 4 个 新品 和 4 个 畅销商品 我想将 4 个 新产品 增加到 8 个 即
  • 图标题 学名 + textGrob gtable 中的符号

    首先 我要感谢 Baptiste 爵士帮助我改进 R 脚本 使用 gtable textGrob 在组合图的左下角添加标题 如下所示 library grid library gridExtra library ggplot2 p1 lt