R ggplot2中geom_文本的相对位置?

R ggplot2中geom_文本的相对位置?,r,ggplot2,axis,limits,R,Ggplot2,Axis,Limits,我正在使用geom_text注释gglot2中的绘图,我希望使用相对定位而不是绝对定位。也就是说,我希望(0.5,0.5)的位置是死点,而不考虑x轴和y轴的限制。可能吗 或者,如果我有x和y的限制,我当然可以将相对位置转换为绝对位置。是否可以从绘图中提取这些数据?如果您知道绘图中数据的范围,您可以使用默认情况下使用0.05的加法扩展因子计算“真实”x和y限制,以便图形的范围稍微超出实际数据值 使用expand=c(mult,add)指定比例时,可以指定和乘法和加法展开因子,其中mult是乘法因子

我正在使用
geom_text
注释
gglot2
中的绘图,我希望使用相对定位而不是绝对定位。也就是说,我希望
(0.5,0.5)
的位置是死点,而不考虑x轴和y轴的限制。可能吗


或者,如果我有x和y的限制,我当然可以将相对位置转换为绝对位置。是否可以从绘图中提取这些数据?

如果您知道绘图中数据的范围,您可以使用默认情况下使用0.05的加法扩展因子计算“真实”x和y限制,以便图形的范围稍微超出实际数据值


使用
expand=c(mult,add)
指定比例时,可以指定和乘法和加法展开因子,其中
mult
是乘法因子,依此类推。因此默认设置为
expand=c(0,0.05)

是的,可以从ggplot2绘图中提取x和y限制。此函数用于返回ggplot2打印对象中心的x和y坐标:

center.position <- function(plot) {
xpos <- (ggplot_build(plot)$panel$ranges[[1]]$x.range[2]-ggplot_build(plot)$panel$ranges[[1]]$x.range[1])/2+ggplot_build(plot)$panel$ranges[[1]]$x.range[1]
ypos <- (ggplot_build(plot)$panel$ranges[[1]]$y.range[2]-ggplot_build(plot)$panel$ranges[[1]]$y.range[1])/2+ggplot_build(plot)$panel$ranges[[1]]$y.range[1]
return(data.frame(x=xpos,y=ypos))
}

center.position是的,现在我正在对数据范围进行大范围的研究。但我不知道如何指定扩展因子。非常感谢。我不知道这是怎么回事。我正面临着这个问题,你能用一个简单的例子进一步解释一下吗?
ggplot\u build(plot)
的结构已经改变了。在2.1.1中,它类似于
ggplot\u build(plot)$layout$panel\u ranges[[1]]$x.range[2]
center.coords <- center.position(myplot)
myplot <- myplot + annotate("text",x=as.POSIXct(center.coords$x,origin="1970-01-01"), y=center.coords$y, label="X")