图标题 学名 + 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 中的符号 的相关文章

  • twitterR 和 ROAuth R 软件包安装

    我在安装 CRAN 上的 twitteR 和 RAOuth 软件包时遇到一些问题 我尝试了几种不同的方法 在 Windows 下使用源代码 在 Ubuntu 下使用 RStudio 我尝试了以下命令 sudo apt get install
  • Purrr::map_df() 删除 NULL 行

    使用时purrr map df 我偶尔会传递一个数据框列表 其中一些项目是NULL 当我做 map df 返回行数少于原始列表的数据框 我想发生的事情是这样的map df calls dplyr bind rows 它忽略了NULL价值观
  • 使用 R 选择第一个非 NA 值

    df lt data frame ID c 1 1 1 2 3 3 3 test c NA 5 5 6 4 NA 7 3 NA 10 9 我想创建一个名为 value 的变量 它是每个单独 ID 测试的第一个非 NA 值 对于只有NA的个体
  • 只读取选定的列

    谁能告诉我如何仅读取下面每年数据的前 6 个月 7 列 例如使用read table Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2009 41 27 25 31 31 39 2
  • 基于时间窗口的不规则时间序列的优化滚动函数

    有没有办法使用 rollapply 来自zoo包或类似的东西 优化功能 rollmean rollmedian等 使用基于时间的窗口计算滚动函数 而不是基于大量观察的函数 我想要的很简单 对于不规则时间序列中的每个元素 我想计算一个具有 N
  • 将阴影区域添加到五分位数之间的直方图中

    All 我有一个包含 2 个直方图的图表 其中我还绘制了代表第 20 40 60 和 80 个百分位数的线条 下面的代码使用虚拟数据重现了类似的图表 data lt rbind data frame x rnorm 1000 0 1 g o
  • 文本挖掘 pdf 文件/词频问题

    我正在尝试挖掘一篇具有丰富 pdf 编码和图表的文章的 pdf 我注意到 当我挖掘一些 pdf 文档时 我得到的高频词是 phi taeoe toe sigma gamma 等 它与某些 pdf 文档配合良好 但与其他文档配合使用时却得到这
  • 如何仅删除单括号并保留配对的括号

    你好 我亲爱的老师 R 用户朋友们 我最近开始认真学习正则表达式 最近我遇到了一种情况 我们只想保留配对括号 并省略未配对的 这是我的样本数据 structure list t1 c Book Pg 1 Website Online Jou
  • 如何从 R keras 中的类似生成器的数据中评估()和预测()

    我有以下代码 数据集可以下载here https www dropbox com s qjt5o31oyqj10m8 data tar gz dl 0 or here https www kaggle com c dogs vs cats
  • 在 Rcpp 中使用其他包中的 C 函数

    我试图从 C 函数中的 cubature 包调用 C 例程来执行多维积分 我试图重现的基本 R 示例是 library cubature integrand lt function x sin x adaptIntegrate integr
  • 所有 x 轴标签未以 45 度显示

    I m having the code as like below But I m not getting all the x axis labels and it is not displaying in 45 degree when I
  • R 的 ggplot2 有 Python API 吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我的问题就像标题一样简单 我想使用R s ggplot2但我所有的数据处理都是在Python 有没有Py
  • 使用 ggmap 截断密度多边形

    我在使用 R ggmap 绘制密度图时遇到问题 我的数据如下所示 gt head W date lat lon dist 1 2010 01 01 31 942 86 659 292 415 2 2010 01 10 32 970 84 1
  • 将不均匀的层次列表转换为数据框

    我认为还没有有人问过这个问题 但是有没有一种方法可以将具有多个级别和不均匀结构的列表的信息组合成 长 格式的数据帧 具体来说 library XML library plyr xml inning lt http gd2 mlb com c
  • R“错误:“}”中出现意外的“}”[重复]

    这个问题在这里已经有答案了 我有一个字符串变量 对于缺少数据的情况 它具有 空值 我想将 空值 重新编码为缺失 而不是说 空值 我正在尝试编写一个循环来删除这些 空值 条目 但我不断收到错误 错误 中出现意外的 for row in dat
  • SPSS 中的标准化残差与 R rstandard(lm()) 不匹配

    在寻找 R 相关解决方案时 我发现 R 和 SPSS 版本 24 在计算简单线性模型中的标准化残差方面存在一些不一致 看来SPSS所谓的标准化残差匹配 R学生化残差 我完全不认为某处存在软件错误 但显然这两个程序之间存在差异 看看这个例子
  • R:使用 tidyverse 将 NA 替换为 df 中的其他变量

    我想使用 tidyverse 替换 df 中的 NA 值 我想要的值应该从其他列中计算出来 input ID X1 X2 X3 A 0 96 NA 0 97 B 1 00 NA 1 01 C 0 98 0 03 NA A 1 00 NA 1
  • 如何将plot中的单变量列表图表转换为ggplot2格式?

    我正在搜索 但仍然找不到一个非常简单的问题的答案 我们如何使用 R 中的 ggplot2 生成一个变量的简单线图 我正在分析时间序列数据 并且想要对图表进行更复杂的操作 我认为如果我使用 ggplot2 代替会更好plot It works
  • 在 Shiny 中的用户会话之间共享反应数据集

    我有一个相当大的反应数据集 该数据集是通过轮询文件然后按预定义的时间间隔读取该文件而派生的 数据更新频繁 需要不断重新加载 诚然 重新加载可以增量完成并附加到 R 中的现有对象 但事实并非如此 然而目前 尽管会话中的数据相同 但此操作是针对
  • 线性判别分析图

    如何将样本 ID 行号 作为标签添加到此 LDA 图中的每个点 library MASS ldaobject lt lda Species data iris plot ldaobject panel function x y points

随机推荐

  • 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