我geom_text
用来注释图gglot2
,我想使用相对定位而不是绝对定位。也就是说,(0.5, 0.5)
无论 x 和 y 轴的限制如何,我都希望 的位置成为死点。那可能吗?
或者,如果我有 x 和 y 限制,我当然可以将相对位置转换为绝对位置。是否可以从情节中提取这些?
如果您知道绘图中数据的范围,则可以ggplot
使用默认情况下使用 0.05 的附加扩展因子这一事实来计算“真实”x 和 y 限制,这样图形的范围就会稍微超出实际范围数据值。
expand = c(mult, add)
您可以在使用where mult
is the multiplicative factor 等指定比例时指定乘法和加法扩展因子。所以默认设置是expand = c(0,0.05)
.
是的,可以从 ggplot2-plot 中提取 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))
}
如果您的 x-Data 是 POSIXct 格式,您仍然需要对其进行转换:
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")