如何让 geom_text 与 ggplot2 左对齐

2024-01-11

我想左对齐geom_text层与ggplot2。我正在使用以下代码

library(tidyverse)
library(hydroGOF)
library(scales)

summ <- df %>% 
  group_by(Date) %>% 
  summarise(R = cor(x, y, use="pairwise.complete.obs"),
            MBE = me(obs=x, sim=y, na.rm=TRUE),
            RMSE = rmse(obs=x, sim=y, na.rm=TRUE)) %>%
  mutate(across(c(R, RMSE), ~round(., 2)))%>% 
  mutate(lab = paste0("R = ", R, "\nMBE = ", scientific(MBE, digits = 3),
                     "\nRMSE = ", RMSE)) %>% 
  select(Date,lab)

p <- ggplot(data=df, aes(x = x, y = y)) +
  geom_point(fill="lightgray", color = "black",alpha = 1/3) + 
  facet_wrap(Date ~ ., scales="free") +
  geom_smooth(method=lm, fill="lightgray", formula = y ~ x) +
  theme_bw() + 
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())


p + geom_text(data=summ, aes(x= Inf,y= Inf, label=lab),
            hjust = 1, vjust = 1, size= 4, family = "serif")

As you can see from the plot that the geom_text is right-aligned. I want to make it left-aligned. I came to know from this post https://stackoverflow.com/questions/46259140/left-justify-geom-text-layer-with-ggplot2 that it can be done using hjust = 0. But when I am giving this in my code the text disappears. Now, can I have the geom_text left aligned like the following plot enter image description here

df = structure(list(Date = structure(c(18590, 18590, 18590, 18590, 
18590, 18590, 18590, 18590, 18590, 18590, 18590, 18590, 18590, 
18590, 18590, 18590, 18590, 18590, 18590, 18590, 18590, 18590, 
18590, 18590, 18590, 18590, 18590, 18590, 18590, 18590, 18590, 
18590, 18590, 18590, 18590, 18590, 18590, 18590, 18590, 18590, 
18590, 18590, 18590, 18590, 18590, 18590, 18590, 18590, 18590, 
18590, 18590, 18590, 18590, 18590, 18590, 18590, 18590, 18590, 
18590, 18590, 18590, 18590, 18590, 18590, 18590, 18590, 18590, 
18590, 18590, 18590, 18590, 18614, 18614, 18614, 18614, 18614, 
18614, 18614, 18614, 18614, 18614, 18614, 18614, 18614, 18614, 
18614, 18614, 18614, 18614, 18614, 18614, 18614, 18614, 18614, 
18614, 18614, 18614, 18614, 18614, 18614, 18614, 18614, 18614, 
18614, 18614, 18614, 18614, 18614, 18614, 18614, 18614), class = "Date"), 
    x = c(0.0673029521110164, 0.0854163780659409, 0.134210186321464, 
    0.0643945521023818, 0.0534072925548605, 0.120585968026977, 
    0.171766787541948, 0.0529322841140877, 0.0389151124667283, 
    0.065932816556064, 0.0716104225646635, 0.0480367073546261, 
    0.0537788251427076, 0.100325805042952, 0.162239359083627, 
    0.103732829973447, 0.0970357338162893, 0.10603901085665, 
    0.0519899928560691, 0.0881320707200356, 0.0367170059526139, 
    0.121845733235219, 0.122459218176886, 0.0425359089683653, 
    0.0666875634912124, 0.0464243831679725, 0.0664988270937391, 
    0.0777430803707978, 0.0573249856899528, 0.0888259984184133, 
    0.0520454150074231, 0.0633639832058288, 0.0756093060434679, 
    0.0907648362839996, 0.0409180444460348, 0.117772012019805, 
    0.160504051083046, 0.10242517144965, 0.104937932574452, 0.0527662976624684, 
    0.0566003076702597, 0.14336552685814, 0.0338041955729706, 
    0.0364078719337135, 0.0296346837015176, 0.0405151452292794, 
    0.0326617631513927, 0.0383537061987076, 0.0560937860237775, 
    0.0662505348148382, 0.130741306761004, 0.0382284958039881, 
    0.0377009798726168, 0.047621161734172, 0.0356923968905919, 
    0.0516794984004681, 0.0777089536097421, 0.0879614340700801, 
    0.0664604119732582, 0.0951825936041895, 0.0581670432364461, 
    0.0614073175261606, 0.0621596045142233, 0.125973936545876, 
    0.0518735765008042, 0.0582112269727801, 0.0541847270530605, 
    0.0970492801742658, 0.0855089208077924, 0.0900662233655072, 
    0.0553091996406284, 0.045398746284043, 0.0747212626723072, 
    0.0468059595214467, 0.0715252644180638, 0.0392926648647701, 
    0.0401031176420515, 0.0393664661556453, 0.0454529539530989, 
    0.0432804905060738, 0.0928468023207638, 0.0814411322724173, 
    0.0826901703538189, 0.0394121791543224, 0.0846930951222448, 
    0.0851496310212468, 0.0800223696662629, 0.0739057775607218, 
    0.0654718923457129, 0.0597189681733721, 0.0518238375517588, 
    0.0811966642411631, 0.0484268967172088, 0.0398812336217731, 
    0.0408737243973982, 0.0722437508279481, 0.0567807507661876, 
    0.108055811705416, 0.0455713198571915, 0.0911207949375208, 
    0.0562274957486631, 0.0453506947793071, 0.0643281114150967, 
    0.0451974642392855, 0.0583516194132318, 0.0603141601370974, 
    0.0474342976516535, 0.0665490689121699, 0.0656781730798187, 
    0.0809471751886296, 0.0580192064282883), y = c(0.06919, 0.06378, 
    0.1046, 0.0963, 0.08835, 0.14248, 0.13096, 0.09829, 0.04209, 
    0.05926, 0.06029, 0.06975, 0.07061, 0.09682, 0.14988, 0.13158, 
    0.04941, 0.06607, 0.08155, 0.09832, 0.05956, 0.14679, 0.08054, 
    0.04512, 0.0705, 0.05925, 0.08821, 0.09841, 0.08305, 0.07885, 
    0.05957, 0.05032, 0.06938, 0.04775, 0.0528, 0.11204, 0.12149, 
    0.065, 0.09006, 0.05126, 0.05475, 0.11013, 0.06336, 0.04926, 
    0.03237, 0.04511, 0.04268, 0.04304, 0.0537, 0.07389, 0.10452, 
    0.05579, 0.05091, 0.0618, 0.04891, 0.05373, 0.07665, 0.07958, 
    0.05465, 0.08265, 0.06703, 0.04129, 0.05235, 0.11724, 0.06877, 
    0.07079, 0.06365, 0.10306, 0.07579, 0.07818, 0.04264, 0.05456, 
    0.07916, 0.05683, 0.06361, 0.05798, 0.06058, 0.04364, 0.05638, 
    0.05134, 0.07837, 0.08028, 0.07875, 0.06031, 0.09279, 0.07135, 
    0.07104, 0.06089, 0.04861, 0.05516, 0.05096, 0.07485, 0.06711, 
    0.06142, 0.05964, 0.06668, 0.06389, 0.08934, 0.03986, 0.08812, 
    0.05291, 0.04459, 0.04609, 0.05507, 0.04233, 0.04497, 0.05065, 
    0.05746, 0.08027, 0.06171, 0.05248)), row.names = c(NA, 111L
), class = "data.frame")

你只需设置x = -Inf and hjust = 0使其与左侧 y 轴对齐。由于我没有一些必需的包,因此我用标准数据集来说明这一点。

library(ggplot2)
#> Warning: package 'ggplot2' was built under R version 4.0.5

ggplot(mtcars, aes(wt, mpg)) +
  geom_point() +
  facet_wrap(~ cyl) +
  geom_text(
    data = ~ subset(.x, !duplicated(cyl)),
    aes(x = -Inf, y = Inf, label = paste0("Cyl = ", cyl)),
    hjust = 0, vjust = 1, size = 10
  )

Created on 2021-07-09 by the reprex package https://reprex.tidyverse.org (v1.0.0)

EDIT:

The -Inf and Inf位置美学的参数 x 和 y 表示某物应该放置在轴的最极端位置。-Inf位置放置在底部/左侧并且Inf位置放置在顶部/右侧,具体取决于使用的位置美学。

与常见的误解相反,hjust is not文本的水平对齐,但它是与文本方向平行的对齐。同样地,vjust不是文本的垂直对齐,而是与文本方向正交的对齐。什么时候angle = 0这种误解是正确的,但从其他角度来看则不然。我所说的“调整”是指相对于同一系列中字符串的最大宽度/高度而言特定字符串的放置位置。环境hjust = 0在开头对齐文本,而hjust = 1在两端对齐文本。当选择其他理由时,例如-1 or 2,它只是意味着将文本放置在该位置之前 1 个字符串宽度或“自然”结束位置之后 1 个字符串宽度。因此,将对齐方式设置为 0.5 会使一系列文本居中,因为它将移动半个字符串宽度(对于字符串高度)vjust)。也可以看看我的这个答案 https://stackoverflow.com/a/66027404/11374827进行视觉解释。

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

如何让 geom_text 与 ggplot2 左对齐 的相关文章

  • 保存 d3heatmap 生成的热图

    我正在尝试保存由d3heatmap https github com rstudio d3heatmap转换为 pdf 文件 但文件总是损坏 library d3heatmap pdf file heat pdf d3heatmap mtc
  • 如何向 ggplot 标题和标题添加图标?

    现在我正在尝试将图标放入 ggplot 可视化中 为此 我在网上检查了一些教程 当我运行 Claus Wilke 的以下代码示例时 library ggtext library ggplot2 ggplot mtcars aes mpg d
  • 使用 google 查询邮政编码距离

    我有两个邮政编码列表 R 语言 其中一个是孩子的地址及其学业成绩 另一个是学校的地址 我希望能够为每个孩子找到最近的学校 所以大概需要通过转换为长和纬度值来计算邮政编码之间的距离 然后我希望能够在谷歌地图上绘制每所学校的所有孩子 并看看住在
  • 如何使用Shiny中的下载按钮?

    我想下载一个csv使用 Shiny 中的下载按钮下载文件 该文件将使用辅助 r 脚本中的参数创建 SERVER output downloadData lt downloadHandler filename function paste d
  • 条件 RenderUI R 闪亮

    我的 renderUI 有问题 但在任何地方都找不到解决方案 可能我向谷歌问了错误的问题 不仅仅是一个闪亮的问题 而是一个基本的 R 问题 我在 R 中有一个函数 根据输入将返回一个表格或文本 所以我在我的 server R 中以这种方式创
  • 不同元素的ggplot字体大小

    我知道在创建 ggplot 图后我可以使用theme get 返回所有主题元素的详细信息 这对于弄清楚诸如此类的事情非常有帮助strip text x等等 但我有两件事无法弄清楚 1 在下面的ggplot图形中 代表短语 被土拨鼠卡住的木头
  • 根据 B 列中的一系列值获取 A 列的平均值

    我的数据框有几列 如下所示 df1 lt data frame A c 1 2 4 B c 1 3 1 C c 1 1 3 我有两个条件来获取 A 列的平均值 条件1 我想在B为1时获得A列的平均值 即只对row1和row2进行平均 条件2
  • R Shinydashboard 根据选项卡选择显示/隐藏 UI 元素

    如果有人可以提供帮助 我正在努力满足要求 我必须根据用户的选项卡面板选择在仪表板侧栏上显示 隐藏一些元素 这是 UI 代码的一部分 可让您了解我的应用程序的结构 我需要仅在 tabpPanel 2 上显示 Fourthoutput Fift
  • R - Rstudio - 如果生成警告/错误,则使 R 播放声音

    我正在运行一个循环遍历股票对组合列表的脚本 偶尔 由于对组合之间的数据长度不同而产生错误 脚本会停止运行 我只是将不匹配的股票从考虑中删除 Error in model frame default formula stckY stckX 0
  • 加载 plyr 包时出现问题

    我使用 R 2 13 1 但未能成功尝试在 R 中加载包 plyr 1 6 我已将其手动安装到目录 R library 中 我的代码是 libPaths R library library plyr 我收到消息 库 plyr 中的错误 pl
  • 在 R/exams exams2nops() 中用零填充初始学生 ID

    当使用exams为 NOPS 考试生成 PDF 文件的软件包我想编辑学生可用的位数 reglength 我知道该软件包只允许至少 7 位数字 然而 我们学生的身份证号码只有5位数字 因此我想知道是否可以通过 PDF 操作来编辑模板 我尝试过
  • R 用簇绘制热图,但隐藏树状图

    默认情况下 Rheatmap将聚集行和列 mtscaled as matrix scale mtcars heatmap mtscaled scale none 我可以禁用集群 heatmap mtscaled Colv NA Rowv N
  • 如果在循环中调用summary()命令,如何获得它的输出?

    Suppose Z是特征名称的向量 如何让以下 Rscript 中的摘要命令实际打印 for var in Z cat i form paste crim var lm fit lm form data Boston summary lm
  • 如何禁用“保存工作区图像?” R 中的提示?

    当我退出交互式 R shell 时 它每次都会显示一个烦人的提示 gt gt Save workspace image y n c n 我总是对此回答 不 因为如果我想保存我的工作 我就会这么做before试图退出 如何去掉这个提示呢 No
  • 获取非零数据的列意味着

    R 可以获得数据帧非零值的 colMeans 吗 data lt data frame col1 c 1 0 1 0 3 3 col2 c 5 0 5 0 7 7 colMeans data 1 33 4 我想要这样的东西 mean dat
  • 使用两列数据分割数据帧并对结果数据帧列表应用通用转换

    我想根据两列中的值将一个大数据帧拆分为一个数据帧列表 然后 我想对结果列表中的所有数据帧应用通用数据转换 滞后转换 我知道 split 命令 但只能让它一次处理一列数据 您需要将所有想要分割的因素放在一个列表中 例如 split mtcar
  • 将公式传递给 R 中的函数?

    对此的任何帮助将不胜感激 我正在使用 Lumley 调查包 并试图简化我的代码 但遇到了一些小障碍 在我的代码中调用包中的 svymean 函数如下 其中第一个参数是指示我想要哪些变量的公式 第二个参数是该数据集 svymean hq eh
  • 使用 ggplot 绘制函数,相当于 curve()

    是否有使用绘制函数的等效方法ggplot to the curve 基础图形中使用的命令 我想另一种选择是创建一个函数值向量并绘制一条连接线 但我希望有更简单的东西 Thanks 您可以使用以下命令添加曲线stat function ggp
  • 在 R 中编写多重积分函数

    为了将以下内容转换为函数 我想知道如何用 R 代码编写以下二重积分 bar x mu 假设pi0 and pi1以向量化方式实现函数 pi 0 和 pi 1 可能的解决方案是 integral lt function n mu s pi0
  • 如何根据值扩展数据框? [复制]

    这个问题在这里已经有答案了 我有以下输入数据框 df lt data frame x c a b c y c 4 5 6 from c 1 2 3 to c 2 4 6 df x y from to 1 a 4 1 2 2 b 5 2 4

随机推荐

  • 如何使用 thunk 在react-redux hooks中进行异步调用?

    我开始学习钩子 但我不明白异步调用如何正确工作 早些时候我用过 import as actionQR from actions qr function mapDispatchToProps dispatch return actionQR
  • 在asp.net core 2.1中捕获服务器端的会话超时

    我需要做点什么会议结束事件 我怎样才能参加这个活动 与此事件类似的任何事情可能会超时 ASP NET 有一个Session OnEnd您可以在 Global asax 中注册事件 但即使如此 它也非常不可靠 您只能将它用于进程内会话 并且它
  • 如何访问Azure Service Fabric有状态/无状态服务中的settings.xml?

    如何访问和读取中定义的参数PackageRoot Settings Settings xml来自我的有状态 无状态服务代码的文件 例如 我有一个带有参数 EndpointUrl 的 DocumentDbConfig 部分 section s
  • 显示成功消息,然后在超时后使用 PageFlow 重定向到另一个页面

    如何显示成功消息 然后在超时后将用户重定向到另一个页面 例如5秒 成功登录后我需要这个作为登录页面 我尝试了以下操作 我可以看到登录失败时的警告消息 但看不到登录成功时的成功消息 它立即显示目标页面 public String check
  • Amazon EC2丢失私钥,如何访问服务器? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 前天我的电脑被偷了 我把我的一台服务器私钥放进去 该密钥受密码保护 所以应该没问题 但问题是现在我无法访问服务器 服务器是Ubuntu 亚马逊EC2
  • 管理到非管理开销

    在 NET 中 有几个地方必须离开托管代码并进入非托管 也称为本机代码 领域 仅举几例 外部 DLL 函数 COM调用 总是有一些关于开销的评论从一个原因跳到另一个原因 我的问题是是否有人测量了正在发生的确切开销 并可以解释如何计算它 例如
  • 是否可以将 Azure 虚拟机移动到另一个区域?

    我有一个带有非托管磁盘的 Azure VM 我想把它移到另一个地区 除了概括我当前的虚拟机之外还有其他方法吗 除了概括我当前的虚拟机之外还有其他方法吗 Azure 不支持更改 VM 的位置 您需要将 VM 的 VHD 复制到另一个位置并使用
  • 如何加载本地json文件?

    有没有办法使用 about config 配置 Firefox 以允许本地文件访问 用于演示目的 特别是使用 FF12 我需要能够对 json 数据进行本地文件访问 它在服务器上运行良好 但我想让这个演示更加便携 ajax url asse
  • 如何查看 Android 设备的屏幕状态?

    有没有办法在没有广播接收器的情况下知道Android设备屏幕是否打开 我想通过警报管理器调用的服务在设备上进行分钟间隔更新 我还想延长电池寿命 因此 如果设备屏幕打开 更新服务就会运行 我用这段代码找到了解决我的问题的方法 PowerMan
  • os.fork 和 multiprocessing.Process 之间的行为差​​异

    我有这个代码 import os pid os fork if pid 0 os environ HOME rep1 external function else os environ HOME rep2 external function
  • 驱动器文件更新错误 500

    我的应用程序在 appdata 文件夹中保留了一些应用程序特定文件 但是 当文件尝试更新云端硬盘应用程序数据中的文件时 反复从云端硬盘服务器收到内部错误 我正在使用 Objective c 客户端调用 Drive API 你能帮忙看看这些有
  • 如何区分“使用鼠标右键单击”和“在物理键盘上按上下文菜单键”

    如何区分使用鼠标右键单击和物理键盘上的上下文菜单按键 使用此代码我尝试在控制台中打印事件 inputId bind contextmenu function e console log e 我抓取了上面代码的一些输出 对于使用鼠标右键单击
  • 为所有浏览器嵌入 Windows Media Player

    Edit 这个问题是2008年写的 相当于3个互联网时代之前的事了 如果这个问题仍然与您的环境相关 请接受我的哀悼 其他人都应该转换成一种格式您的浏览器支持 https videojs com html5 video support 如果需
  • Mysql2::Error: key 'index_admin_users_on_email' 的重复条目 '' Ruby on Rails 错误

    我正在尝试在从github获得的rails代码上运行ruby 最后我使用homebrew安装了mysql 然后也直接从http dev mysql com http dev mysql com 直到那时 当我在应用程序文件中使用 rake
  • 垃圾收集在内部 Map 中跟踪其自身实例的对象

    在我的类的构造函数中 我映射当前对象 this 连同它的键 在构造函数中作为参数输入的字符串 一起放入静态 LinkedHashMap 中 这样我就可以在以后可能需要的任何地方通过该字符串引用该对象 这是代码 如果有帮助的话 public
  • 我的API函数应该采用shared_ptr还是weak_ptr

    我目前正在设计一个 API 我不确定我的函数是否应该采用shared ptr or weak ptr 有些小部件包含查看器 观众有一个功能add painter这为观看者添加了一位画家 当查看器需要重绘时 它使用其绘制器绘制到缓冲区并显示结
  • IE 11 Bug - 表单内标签内的图像

    在 IE11 中 以下代码将按预期检查单选按钮
  • 由于上下文丢失,WebGL 场景无法渲染

    我有一个带纹理和不带纹理的道路 3D 模型 当我加载没有纹理的道路时 一切正常 60fps 但是当我加载带有纹理的道路时 有两种变体 1 如果 3D 模型不大 那么它可以加载并工作 但 fps 非常低 10 20 2 如果 3D 模型很大
  • PDO 语句比 MySQL CLI 花费的时间长 400 倍 [重复]

    这个问题在这里已经有答案了 我正在运行一个 PDO 准备语句来从大约 6k 行的表中进行选择 由于 WHERE 语句具有约 5k pId 因此该特定查询最终返回所有行 该表在 pId 列上也有一个索引 SELECT FROM table a
  • 如何让 geom_text 与 ggplot2 左对齐

    我想左对齐geom text层与ggplot2 我正在使用以下代码 library tidyverse library hydroGOF library scales summ lt df gt group by Date gt summa