r - 标签右侧的文本对齐放置指定左侧的位置
问题描述
我正在注释我的情节,annotate
我想让文本右对齐,但指定标签的位置,就好像它会左对齐一样。
这是一个可重现的示例以及我尝试过的示例:
library(ggplot2)
library(stringr)
mydf <- data.frame(x = 0:15,
y = seq(0, 0.75, 0.05))
text1 <- "first vs. five: 1.456"
text2 <- "second vs. \u2265 six long: 1.567"
text3 <- "third number: 123"
annotations <- str_c(c(text1, text2, text3), collapse = "\n")
ggplot(mydf, aes(x, y)) +
geom_point() +
annotate(geom = "label", x = 0.5, y = 0.975,
label = annotations,
hjust = "left", vjust = "top", size = 4.5)
这给出了标签位置的正确规范,但不是文本的正确对齐方式:
我尝试使用以下方法修复对齐,但这不起作用:
text1_long <- str_pad(text1, width = str_length(text2), side = "left", pad = " ")
text3_long <- str_pad(text3, width = str_length(text2), side = "left", pad = " ")
annotations_long <- str_c(c(text1_long, text2, text3_long), collapse = "\n")
ggplot(mydf, aes(x, y)) +
geom_point() +
annotate(geom = "label", x = 0.5, y = 0.975,
label = annotations_long,
hjust = "left", vjust = "top", size = 4.5)
我知道我可以执行以下操作,但是我必须以不同的方式指定标签的 x 位置。我不想这样做。
ggplot(mydf, aes(x, y)) +
geom_point() +
annotate(geom = "label", x = 10, y = 0.975,
label = annotations,
hjust = "right", vjust = "top", size = 4.5)
有没有办法计算 x 位置,这样我可以确定标签是固定的,x = 0.5
或者我可以将文本的对齐方式和标签位置分开?
解决方案
推荐阅读
- pine-script - 如何获得特定日期的收盘价
- canvas - 在 Threejs 中,RenderTarget 到画布 Y 轴被翻转
- git - 如何在 Artifactory 工件中引用记录 Git 提交 URL
- php - 通过 PHP 远程连接 MySQL
- java - 堆中有很多带有finalize()的对象,即PgConnection
- javascript - 是否可以隐藏 react-chart-js2 中图表上显示的悬停值
- java - 如何在 Android 中将多个选定的图像从图库转换为 PDF?
- java - Spring Saml2 SP 与 Angular 应用程序的集成(我已经在后端实现了 Saml2 安全性,现在我想从 Angular 应用程序连接到后端)
- python - 如何为布尔结果构建机器学习模型?
- javascript - reactjs中如何导出复合组件