12

geom_textプロットに注釈を付けるために使用していますがgglot2、絶対位置ではなく相対位置を使用したいです。つまり(0.5, 0.5)、x 軸と y 軸の制限に関係なく、 の位置を死点にしたいのです。それは可能ですか?

または、x と y の制限がある場合は、もちろん相対位置を絶対位置に変換することもできます。プロットからそれらを抽出することは可能ですか?

4

2 に答える 2

7

プロット内のデータの範囲がわかっている場合は、デフォルトで 0.05 の追加拡張係数を使用するという事実を使用して、「真の」x および y 制限を計算できggplotます。これにより、グラフの範囲が実際の範囲をわずかに超えて拡張されます。データ値。

expand = c(mult, add)wheremultは乗算係数などを使用してスケールを指定するときに、乗算および加算拡張係数を指定できます。したがって、デフォルト設定は です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 に答える