それぞれ長さが異なる 2 つのベクトルがあるとします。両方のベクトルの密度を重ね合わせた 1 つのプロットを生成したいと考えています。私がやるべきだと思ったのはこれです:
vec1 <- data.frame(x=rnorm(2000, 0, 1))
vec2 <- data.frame(x=rnorm(3000, 1, 1.5))
ggplot() + geom_density(aes(x=x, colour="red"), data=vec1) +
geom_density(aes(x=x, colour="blue"), data=vec2)
次に、これを行う必要があると思いました:
vec1 <- data.frame(x=rnorm(2000, 0, 1))
vec2 <- data.frame(y=rnorm(3000, 1, 1.5))
ggplot() + geom_density(aes(x=x, colour="red"), data=vec1) +
geom_density(aes(x=y, colour="blue"), data=vec2)
色が混同されるため、これらのどちらも機能しません。
StackOverflow 1 2で見つけた別の解決策に基づいて、これを試す必要があることに気付きました。
vec1 <- data.frame(x=rnorm(2000, 0, 1), grp="vec1")
vec2 <- data.frame(x=rnorm(3000, 1, 1.5), grp="vec2")
allDat <- rbind(vec1, vec2)
ggplot(allDat, aes(x, colour=grp)) + geom_density()
ggplot(allDat, aes(x, colour=grp)) + geom_density() +
scale_colour_manual(values=c("green", "blue"))
ggplot(allDat, aes(x, colour=grp)) + geom_density() +
scale_colour_manual(values=c(vec2="green", vec1="blue"))
OK、元の問題を解決しました。しかし、私が上で試した最初のものに似た何かをする方法はありますか? ドキュメントでの言い回しからするggplot
と、そう思ったでしょう。提案をお待ちしております。