はのは、私は単純なデータフレームを持っているとしましょう:並べ替え伝説
> A <- data.frame(x=1:10, a=rep(1,10), d=rep(2,10), b=rep(3,10))
> A
x a d b
1 1 1 2 3
2 2 1 2 3
3 3 1 2 3
4 4 1 2 3
5 5 1 2 3
6 6 1 2 3
7 7 1 2 3
8 8 1 2 3
9 9 1 2 3
10 10 1 2 3
を私は、x軸および他のx
でこれをプロットしたいです列はy軸上の線として表示されます。私は最終的な列を表す線が他の線より少し太くなるようにしたい。今、上記のプロットに問題が伝説の中の変数の順序が変更されたことである
library(ggplot2)
#Plot that creates a thicker line for last column of data.
#However, order of legend is changed to alphabetical order.
p <- ggplot(A, aes(x))
for(i in 2:length(A)){
gg.data <- data.frame(x=A$x, value=A[,i], name=names(A)[i])
if(i==length(A)){
p <- p + geom_line(data=gg.data, aes(y=value, color=name), size=1.1)
} else{
p <- p + geom_line(data=gg.data, aes(y=value, color=name))
}
}
:だから私はその下に示したプロットにつながる次のコードでこれを行うことができますアルファベット順に並べる私はそれを望んでいない。代わりに、注文はa
、d
、b
のままにします。
私はmelt
を使用して、次のコードを使用してプロットしていますが、今度はA
の最後の列を表す行のサイズを増やす方法はわかりません。
Amelt <- melt(A, id.vars='x')
#Plot that orders legend according to order of columns in data frame.
#However, not sure how to thicken one particular line over the others.
pmelt <- ggplot(Amelt)+geom_line(aes(x=x, y=value, color=variable))
どのように私は私が欲しいの両方のものを得ることができますか?
'geom_line'とは別の2番目の呼び出しで、' + geom_line(data = subset(Amelt、変数== "b")、aes(x = x、y =値、色=可変)、サイズ= 1.1) ' – aosmith
ありがとう、aosmith。それはうまくいくはずです! –
「b」にハードコードされているのではなく、最後の変数に関連するようにするだけです:+ geom_line(data = subset(Amelt、変数== Amelt $変数[nrow(Amelt)])、aes(x = x 、y = value、color = variable)、size = 1.1) ' –