例のデータフレーム(これを行うには良い/より多くの慣用的な方法がある場合、私に知らせて):は、ポイントラインプロットのセット用に別の伝説を持っており、縦線は、プロット
n <- 10
group <- rep(c("A","B","C"),each = n)
x <- rep(seq(0,1,length = n),3)
y <- ifelse(group == "A",1+x,ifelse(group == "B",2+2*x,3+3*x))
df <- data.frame(group,x,y)
xd <- 0.5
des <- data.frame(xd)
私が欲しいですデータの点線プロットをdf
にプロットするには、xd
で示されるx
の位置に縦の曲線を追加し、両方に対して読み取り可能な凡例を取得します。私は、次のことを試してみました:
p <- ggplot(data = df, aes(x = x, y = y, color = group)) + geom_point() + geom_line(aes(linetype=group))
p <- p + geom_vline(data = des, aes(xintercept = xd), color = "blue")
p
かなり私が念頭に置いていたものを、垂直線のための伝説がありませんされていません。
小さな変更(geom_vline
がshow.legend
パラメータを使用して、いくつかのジオメトリ、FALSE
にさらにデフォルトの一つである理由私は理解していない!):
p <- ggplot(data = df, aes(x = x, y = y, color = group)) + geom_point() + geom_line(aes(linetype=group))
p <- p + geom_vline(data = des, aes(xintercept = xd), color = "blue", show.legend = TRUE)
p
少なくとも今伝説には縦棒が表示されていますが、私はそれをgroup
と同じ "カテゴリ"(?)に入れることは望ましくありません。 Design
と題された別の凡例のエントリがあり、縦線のみが含まれています。どうすればこれを達成できますか?
私はあなたを与えるだろう**素晴らしい** Rickのアバターのために、悲しいかな、いい答えのために+1を与えることができます:) – DeltaIV
'scale_fill_manual'に' override.aes'の必要性がありますが、どうして ' 'geom_line'ジオメトリの' show.legend = TRUE'ですか?そうでなければ解決策は機能しませんが、理由はわかりません。 – DeltaIV
'geom_vline()'の中に置くこともできますが、何らかの理由で凡例が表示される方法が崩れてしまいます。それは、まだ完全には解決されていない既知の問題です。https://github.com/hadley/ggplot2/issues/1267 – mtoto