12

geom_text用来注释图gglot2,我想使用相对定位而不是绝对定位。也就是说,(0.5, 0.5)无论 x 和 y 轴的限制如何,我都希望 的位置成为死点。那可能吗?

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

4

2 回答 2

7

如果您知道绘图中数据的范围,则可以ggplot使用默认情况下使用 0.05 的附加扩展因子这一事实来计算“真实”x 和 y 限制,这样图形的范围就会稍微超出实际范围数据值。

expand = c(mult, add)您可以在使用where multis the multiplicative factor 等指定比例时指定乘法和加法扩展因子。所以默认设置是expand = c(0,0.05).

于 2011-10-01T00:43:43.443 回答
2

是的,可以从 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")
于 2016-06-10T15:06:41.733 回答