2016-10-29 2 views
-1

私はggplot2を使用しています。私はプロットキャンバスの上端に赤い記号で印を付けるプロットを作りたい。そのような何か:ggplot2:プロットキャンバスの端にプロットすることはできますか?

d <- data.frame(x=1:3, y=3:1) 
markings <- function() { 
    d2 <- data.frame(x=c(1.5,2.5), y=3) 
    geom_point(data=d2, aes(x=x, y=y), col="red") 
} 
ggplot(data=d) + geom_point(aes(x=x, y=y)) + markings() 

Example figure, red dots are certain markers at the upper edge

問題は(値3は不明である。)図の上縁がある場合markings()機能が知らないということです私はpar("usr")にを使用することができ、通常のグラフィックスで上端のy値を見つける、ggplot2のグラフの上端にポイントを強制する解決策はありますか?

+3

あなたの助けみんなに感謝しますが、その意志本当に端に住んでいる。それ以外の場合は、プロット( 'ggplot_build')をビルドし、そこからスケールの制限を抽出する必要があります。 – baptiste

+0

うわー、私はそれについて考えなかった。あまりにもきれいではありませんが、十分に良いかもしれません:-) –

+0

私は広く '' 'ggplot_build'''について知っていますが、それは良い' '' marking() ''関数を殺すでしょう。データ(この例では '' '3:1''')に基づいて' 'ylim'''を設定することもできますが、その場合は別に計算して' '' markings'''に渡す必要があります。 ggplotにyを変換しないように指示する方法や、下のグリッド描画ツールにジャンプする方法があるかもしれません。 –

答えて

0

ベストの選択肢はgeom_rugです。申し訳ありませんが、私はまだ かなりggplot方法で考えていないです...

d <- data.frame(x=1:3, y=3:1) 
markings <- function() { 
    d2 <- data.frame(x=c(1.5,2.5)) 
    geom_rug(data=d2, aes(x=x), col="red", sides="t") 
} 
ggplot(data=d) + geom_point(aes(x=x, y=y)) + markings() 

Close to what I wanted--using <code>geom_rug()</code>

は、あなたが `Inf`を使用することができます:-)

関連する問題