私の伝説には、geom_smooth()
とgeom_vline()
をggplot2のグラフに追加するときに奇妙な動作が発生しています。ここでは再現性の例です:R - 凡例のgeom_vlineとgeom_smoothを組み合わせた
library(ggplot2)
n <- 60
set.seed(123)
df <- data.frame(Area = sample(c("A", "B", "C", "D"), size = n, replace = TRUE),
x = runif(n),
y = runif(n),
Type = sample(c("I", "II"), size = n, replace = TRUE),
Result = sample(c("K", "L", "M"), size = n, replace = TRUE))
df.breaks <- data.frame(Area = c("B", "C"), x = c(0.8, 0.3))
ggplot(df, aes(x = x, y = y)) +
geom_point(aes(colour = Result, shape = Type), size = 3) +
geom_smooth(aes(linetype = "Smooth"), colour = "green", se = FALSE) +
geom_hline(yintercept = 0.3) +
facet_wrap(~Area) +
geom_vline(data = df.breaks, aes(xintercept = x, linetype = "Break"), colour = "purple") +
scale_colour_manual(values = c("K" = "red", "L" = "orange", "M" = "blue")) +
scale_linetype_manual(name = "Lines", values = c("Break" = "dashed", "Smooth" = "solid"))
あなたは「行」伝説が垂直と各項目におけるhorizontallラインの両方を有し、第1の場合には破線のカップルがあります気付かれるように2番目のケースでは実線が2本あります。私は、(1)横の緑色の線とそれの隣にある「スムース」というキーと、(2)「ブレイク」という横のキーを持つ縦の紫色の線を持つ凡例を作成するようにコードを調整しようとしています。私が何を試しても(linetype
内/外aes()
などを使用するか、またはscale_linetype_identity()
を使用するか、またはのoverride.aes
オプションを使用しても助けてください)私は正しい組み合わせを見つけることができませんでした!
Iは、同様の例を検索し、私はcolour
、fill
、又はshape
等に重畳された垂直線と他の記事を発見しても、私は、鉱山などlinetype
凡例に縦線を持つものを見つけるcoulnd't。どんな助力も深く感謝します!ありがとう!
多分これはhttps://groups.google.com/forum/embed/#!topic/ggplot2/pv_CGdzPWnE – MLavoie
私も近くには '使用することでした来たことを見つけ出すことができる唯一の事を助けることができます2つの別々の凡例を作成するために 'linetype'の代わりにSmoothのために' fill'を使います。 – aosmith
あなたのお返事ありがとうございます。私はより簡単な@ aosmithの提案に行きました。 – Constantinos