r - 有没有办法在 ggplot2 中将文本居中

标签 r ggplot2

ggplot2 中有没有办法,要么

  1. 以编程方式访问网格区域的 x 和 y 轴范围或
  2. 告诉 geom_text 将文本居中放置在绘图区域的中间

例子

testData <- data.table(a = c(1,2,3,4), b=rnorm(100, 1, 3), c=rnorm(100))
ggplot(testData) + geom_point(aes(x=a, y = b)) + geom_text(aes(x=a, y = 0, label="label")) 

我想避免必须手动设置 y 轴的范围,因为我会自动生成大量图表并且更愿意让 ggplot2 确定要使用的正确范围。

最佳答案

这是你想要的吗:

g1 <- ggplot(testData) +
  geom_point(aes(x = a, y = b)) +
  geom_text(aes(x = a, y = mean(range(b)), label="label"))

g1

enter image description here

Q1,如果你想访问绘图区域的范围:

# build plot object for rendering
gg1 <- ggplot_build(g1)

gg1$panel$ranges[[1]]$x.range
gg1$panel$ranges[[1]]$y.range

# mid-point of y-range from plot object 
mean(gg1$panel$ranges[[1]]$y.range)
# [1] 0.5517525

# mid-point used in plot above
with(testData, y = mean(range(b)))
# [1] 0.5517525

关于r - 有没有办法在 ggplot2 中将文本居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19103646/

相关文章:

R ggplot2 与 shapefile 和 csv 数据合并以填充多边形 - 特定

r - ggplot2 fiddle 图 : fill central 95% only?

r - ggplot 中的 Geom_area 顺序

r - 修改函数参数中的调用

r - 在具有半透明效果的图形中嵌入字体 (PDF)

r - 如何在ggpairs()中更改相关文本的大小

Python 等效于 R c() 函数,用于数据框列索引?

R 包范围和掩码

r - 如何将 R 目录中的文件名与 CSV 列中的名称匹配

r - 在 R 中加载聚会包时出现“找不到对象”错误