ggplot:annotate() 的大小与 element_text() 的大小

2023-11-25

我在协调情节中不同元素的大小方面遇到了一些麻烦。具体来说,我希望注释的大小与 y 轴标题的大小相同。

然而,以下代码会产生不同的大小:

library(ggplot2)
test_data <- data.frame(x = c(1), y = c(1))
ggplot(test_data) +
  geom_point(aes(x = x, y = y)) +
  theme_bw(base_size = 14) +
  annotate("text", label = "A", x = 0.975, y = 1.025, size = unit(14, "pt")) +
  ylab("Why not the same size?") +
  theme(axis.title.y = element_text(size = unit(14, "pt")))

See here

是什么赋予了?


annotate实际上只是创建了一个新的geom_text层。如果你查看源代码GeomText$draw_panel你会看到绘制的文本geom_text图层最终由grid::textGrob,其字体大小由表达式决定:

fontsize = data$size * .pt

在那里我们可以看到size参数由(隐藏)全局变量自动放大.pt。你可以看到的值.pt如果您在控制台中输入:

.pt
#> [1] 2.845276

由于某种原因,此缩放比例不适用于size参数输入element_text, 虽然element_text最终也使用grid::textGrob (via ggplot2:::title_spec)。这可能有一个我不知道的充分理由。

无论如何,最重要的是,如果你想要一个geom_text(或者,通过扩展,annotation("text"))来匹配的大小element_text,您可以将注释的大小除以.pt或乘以element_text尺寸由.pt:

library(ggplot2)

test_data <- data.frame(x = c(1), y = c(1))
ggplot(test_data) +
  geom_point(aes(x = x, y = y)) +
  theme_bw(base_size = 14) +
  annotate("text", label = "Now the same size", x = 0.975, y = 1, 
           angle = 90, size = 14/.pt) +
  ylab("Now the same size") +
  theme(axis.title.y = element_text(size = 14))

Created on 2020-11-30 by the reprex package (v0.3.0)

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

ggplot:annotate() 的大小与 element_text() 的大小 的相关文章

  • 汇总表中各列的字符值比例

    在这种数据框中 df lt data frame w1 c A A B C A w2 c C A A C C w3 c C A B C B 我需要计算所有列中字符值的列内比例 有趣的是 以下代码适用于大型实际数据集 但对上述玩具数据会引发错
  • 如何返回包含最大值标签的向量

    我有一个 4 列数组 我想获得一个向量 其中每行包含包含该行最大值的列的标签 我可以在循环中执行此操作 但我想使用矩阵函数来提高速度 我怎样才能在不编写自己的库函数的情况下做到这一点 有一个函数可以做到这一点 如果x是你的矩阵 尝试max
  • R 中的龙卷风图

    我正在尝试在 R 中绘制龙卷风图 又名敏感性图 目标是可视化某些变量增加 10 和减少 10 的效果 到目前为止我已经得到这个结果 这是我正在使用的代码 Tornado plot data lt matrix c 0 02 0 02 0 0
  • 使用 RDCOMClient 搜索 Outlook 收件箱

    我尝试使用 RDCOMClient 在 Outlook 收件箱中搜索电子邮件中的特定主题 然后获取附件 我在一封电子邮件上进行了这项工作 但由于主题包含日期元素 我需要搜索成为一个类似的子句 但不太清楚这适合我的下面的查询 outlook
  • 如何绘制每条线之间具有特定距离的图形

    实际上 我尝试绘制一个图形 但它将所有列 线 放在一起并显示 因此它不具有代表性 我尝试制作模拟数据并向您展示我如何绘制它 并向您展示我想要的内容 我不知道如何制作像下面所示的示例的数据 但我在这里做了什么 set seed 1 M lt
  • R中整数类和数字类有什么区别

    我想先说我是一个绝对的编程初学者 所以请原谅这个问题是多么基本 我试图更好地理解 R 中的 原子 类 也许这适用于一般编程中的类 我理解字符 逻辑和复杂数据类之间的区别 但我正在努力寻找数字类和整数类之间的根本区别 假设我有一个简单的向量x
  • 在 igraph 中为社区分配颜色

    我在 igraph 中使用 fastgreedy community 检测算法在 R 中生成社区 代码返回 12 个社区 但是在绘图时很难识别它们 因为它返回的图的颜色数量有限 我怎样才能用十二种不同的颜色绘制这个图表 l2 lt layo
  • 手动设置scale_fill_distiller()的比例

    我正在尝试制作一系列图表进行比较 举例来说 我想使用iris数据集来制作这样的图 其中我已过滤以仅查看 setosa 物种 library ggplot2 library dplyr iris gt filter Species setos
  • 如何定义“f_n-chi-square”函数并使用“uniroot”求置信区间?

    I want to get a 95 confidence interval for the following question 我已经写了函数f n在我的 R 代码中 我首先使用 Normal 随机采样 100 个样本 然后定义函数h
  • 导入错误:无法导入名称“时间戳”

    我使用以下代码在 python 3 6 3 中成功安装了 ggplot conda install c conda forge ggplot 但是当我使用下面的代码将其导入笔记本时 出现错误 from ggplot import Impor
  • 计算互相关函数?

    In R 我在用ccf or acf计算成对互相关函数 以便我可以找出哪个移位给我带来最大值 从它的外观来看 R给我一个标准化的值序列 Python 的 scipy 中是否有类似的东西 或者我应该使用fft模块 目前 我正在这样做 xcor
  • 使用大矩阵操作

    我必须使用 big matrix 对象 并且无法计算某些函数 让我们考虑以下大矩阵 create big matrix object x lt as big matrix matrix sample 1 10 20 replace TRUE
  • ubuntu中R的igraph包的安装

    我使用以下命令在 ubuntu 中安装 R 的 igraph 包 install packages igraph 但我收到一条错误消息 警告 无法访问存储库的索引 http ftp iitm ac in cran src contrib h
  • 如何使用 R 将每个文件的数据添加为附加行,从而将不同的 .csv 文件合并为一个完整的文件?

    我有几个不同的文件夹 它们都包含一个 csv 文件 所有这些 csv 文件都有一个单独的列 其中包含实验的一种条件的数据 我想以将每个文件的数据添加为新列的方式合并这些 csv 文件 目前 它看起来像这样 C1 csv 102 106 15
  • 融化R中的下半矩阵

    如何融化下半三角形加对角矩阵 11 NA NA NA NA 12 22 NA NA NA 13 23 33 NA NA 14 24 34 44 NA 15 25 35 45 55 A lt t matrix c 11 NA NA NA NA
  • 无法更新/编辑从 R 中的包(`gratia`)导出的 ggplot2 对象

    我希望我在这里遗漏了一些令人痛苦的明显的东西 我希望更新 例如 修复标题 实验室等 由 生成的 ggplot 对象gratia draw 不太确定为什么我无法更新该对象 有一个简单的解决方案吗 devtools install github
  • randomForest 包在删除一个预测类时的奇怪行为

    我正在运行一个随机森林模型 它产生的结果从统计角度来看对我来说完全没有意义 因此我确信有些东西mustrandomForest 包的代码出现错误 至少在模型的本次迭代中 预测 左侧变量是具有 3 种可能结果的政党 ID 民主党 独立党 共和
  • 将字符串列拆分为多个虚拟变量

    作为 R 中 data table 包的相对缺乏经验的用户 我一直在尝试将一个文本列处理为大量指示符列 虚拟变量 每列中的 1 表示特定的子字符串是在字符串列中找到 例如我想处理这个 ID String 1 a b 2 b c 3 c 进入
  • R - 计算 bin 中特定值的数量

    我有一个如下所示的数据框 df Value lt c 1 1 0 2 1 3 4 0 0 1 2 0 3 0 4 5 2 3 0 6 Sl lt c 1 20 df lt data frame Sl Value gt df Sl Value
  • 列出 R 数据文件的内容而不加载

    我有时用print load myDataFile RData 当我加载数据文件时列出它的内容 有没有办法列出内容而不加载数据文件中包含的对象 我认为如果不加载对象就无法做到这一点 解决方案可能是使用包装器将 R 对象保存到save 该函数

随机推荐

  • Android Studio 添加库通用图像加载器失败

    Android 通用图像加载器 https github com nostra13 Android Universal Image Loader 是我最喜欢的图书馆 但是当我使用Android Studio 使用0 1 5版本 时它无法添加
  • Django 目录结构?

    我想实现一个特定于项目的简单排队服务 代码应该放在 Django 目录结构中的哪个位置 目前的结构是 sound init py models py tests py views py static 编辑 我问将我在上面的目录结构中创建的队
  • myVar = !!someOtherVar [重复]

    这个问题在这里已经有答案了 我可以澄清为什么我想使用它吗 myVar someOtherVar 在非严格类型语言中 运算符将值转换为布尔值 做两次就相当于说 myVar boolean someOtherVar 请注意 为了代码清晰 不建议
  • 如何计算列表项的出现次数?

    给定一个项目 如何在 Python 中计算它在列表中的出现次数 A related but different problem is counting occurrences of each different element in a c
  • 错误:nodejs 中的 getaddrinfo ENOTFOUND 用于 get 调用

    我正在节点上运行一个 Web 服务器 其代码如下 var restify require restify var server restify createServer var quotes author Audrey Hepburn te
  • 在每个应用程序中的对象使用后为其分配“null”

    你总是分配null达到其范围后的对象 或者依赖 JVM 进行垃圾收集 您是否对所有类型的应用程序都执行此操作 无论其长度如何 如果是这样 这总是一个好的做法吗 除非有非常具体的原因 否则没有必要将对象显式标记为 null 此外 我从未见过一
  • 从 C# 客户端在 Solr 中索引 pdf 文档

    基本上我试图在 Solr 中索引 word 或 pdf 文档并找到 ExtractingRequestHandler 但无法弄清楚如何在 c 中编写执行 HTTP POST 请求的代码 如 Solr wiki 中所示 http wiki a
  • C 中最快的解交错操作?

    我有一个指向字节数组的指针mixed包含两个不同数组的交错字节array1 and array2 Say mixed看起来像这样 a1b2c3d4 我需要做的是对字节进行去交错 这样我就得到了array1 abcd and array2 1
  • Android 开发:Keytool,创建密钥库?

    我正在尝试为谷歌市场准备我的应用程序 但事实证明它比预期更具挑战性 我似乎无法掌握签署应用程序的整个概念 但更具体地说 我的问题是我已经安装了 Eclipse 的 keytool 插件 但是当我想创建一个证书时 它要求我选择一个密钥库 输入
  • 如何在 OpenCV 中裁剪 CvMat?

    我有一个图像转换为CvMat矩阵说CVMat source 一旦我得到一个感兴趣的区域source我希望算法的其余部分仅应用于该感兴趣的区域 为此 我想我将不得不以某种方式裁剪source我无法这样做的矩阵 有没有一种方法或函数可以裁剪Cv
  • C 中的参数传递 - 指针、地址、别名

    有人可以解释一下参数传递之间的区别吗C请 根据教授的笔记 有 4 种不同的方式来传递参数 按值调用 按地址调用 指针 按别名呼叫 全局变量 静态变量 如果您能举个例子 我将不胜感激 并且您的工作将受到赞扬 按值调用 将值作为参数传递给函数
  • jquery .stop() 不工作

    我正在尝试构建一个菜单 其中默认情况下仅显示第一个项目 当您将鼠标悬停在其上时 其余项目会滑出 并在鼠标离开时再次隐藏 它大部分工作正常 但如果鼠标在完成滑出之前退出 则不会调用隐藏函数 我想stop 本来应该解决这个问题 但似乎没有任何影
  • Python 中内置类型的自定义比较函数

    我正在使用 Python 的内置集合来保存我定义的类的对象 对于这个类 我定义了 eq ne and hash 这样我就可以通过自定义比较函数来比较对象 这很好用 直到我发现我确实需要two比较函数集 这些函数将在我的代码中的不同时间以不同
  • 如何在 jQuery.each 函数的每个循环之间设置延迟?

    我有这样的代码 li each function var data this text requestFunction data function status if status OK do stuff 所以 我需要在使用函数 reque
  • FPU 与软件仿真的性能比较

    虽然我知道 所以我被告知 浮点协处理器的工作速度比任何浮点算术的软件实现都快 但我完全不知道这种差异有多大 以数量级而言 答案可能取决于微处理器和超级计算机之间的应用程序以及您的工作地点 我对计算机模拟特别感兴趣 你能指出这个问题的文章或论
  • Push_swap:使用两个具有有限指令的可旋转堆栈,在 C 中按升序对给定的一组数字进行排序

    我被给予本校 42 项任务 您可以使用一组 int 值 2 个堆栈和一组操作这两个堆栈的指令 用C编写 一个程序 称为push swap它计算并在标准输出上显示最小的程序Push swap对收到的整数参数进行排序的指令语言 sa swap
  • 分析 python 多处理池

    我试图在多处理池中的每个进程上运行 cProfile runctx 以了解我的源中的多处理瓶颈 这是我正在尝试做的事情的简化示例 from multiprocessing import Pool import cProfile def sq
  • 解组期间 XML 字符无效

    我使用编码 UTF 8 将对象编组到 XML 文件 就成功生成文件了 但是当我尝试将其解组回来时 出现错误 无效的 XML 字符 Unicode 0x 2 的值被发现 属性 1 且元素为 0 该字符为 0x1A 或 u001a 在 UTF
  • 检查 Laravel Blade 文件中的变量是否为空

    我有变量 material details gt pricing null我想检查 laravel Blade 文件中设置的变量 我尝试过 isset material details gt pricing tr td price is n
  • ggplot:annotate() 的大小与 element_text() 的大小

    我在协调情节中不同元素的大小方面遇到了一些麻烦 具体来说 我希望注释的大小与 y 轴标题的大小相同 然而 以下代码会产生不同的大小 library ggplot2 test data lt data frame x c 1 y c 1 gg