同じグラフにデータ セットから 3 本の線を描画し、ggplot2 を使用して表示しようとしています。各線の色と形を手動で設定したい。
問題は、ラベルの辞書編集順序に基づいて色/形状が設定されていることであり、選択されているものを制御できないようです。
これは私が試したことです:
px <-
ggplot(dataset) +
stat_smooth(aes(x=id, y=dataset[,4], colour="2000", linetype="2000"),se=FALSE, size=1, span=0.1, level=0.90, method="loess") +
stat_smooth(aes(x=id, y=dataset[,3], colour="500", linetype="500"),se=FALSE, size=1, span=0.1, level=0.90, method="loess") +
stat_smooth(aes(x=id, y=dataset[,2], colour="1000", linetype="1000"),se=FALSE, size=1, span=0.1, level=0.90, method="loess") +
theme(legend.title=element_blank()) +
xlab("x") +
ylab("y") +
ggtitle("px")
py <-
ggplot(dataset) +
stat_smooth(aes(x=id, y=dataset[,4], colour="1000", linetype="1000"),se=FALSE, size=1, span=0.1, level=0.90, method="loess") +
stat_smooth(aes(x=id, y=dataset[,3], colour="500", linetype="500"),se=FALSE, size=1, span=0.1, level=0.90, method="loess") +
stat_smooth(aes(x=id, y=dataset[,2], colour="2000", linetype="2000"),se=FALSE, size=1, span=0.1, level=0.90, method="loess") +
theme(legend.title=element_blank()) +
xlab("x") +
ylab("y") +
ggtitle("py")
pz <-
ggplot(dataset) +
stat_smooth(aes(x=id, y=dataset[,4], colour="B1000", linetype="B1000"),se=FALSE, size=1, span=0.1, level=0.90, method="loess") +
stat_smooth(aes(x=id, y=dataset[,3], colour="C500", linetype="C500"),se=FALSE, size=1, span=0.1, level=0.90, method="loess") +
stat_smooth(aes(x=id, y=dataset[,2], colour="A2000", linetype="A2000"),se=FALSE, size=1, span=0.1, level=0.90, method="loess") +
theme(legend.title=element_blank()) +
ylab("y") +
xlab("x") +
ggtitle("pz")
これは私が得るものです:
私のデータは次のようになります。
> head(dataset)
id A B C
1 1 0 26 44
2 2 0 0 0
3 3 0 0 46
4 4 26 22 0
5 5 16 0 0
6 6 0 0 30
これらの正確な色、形、凡例ボックスの順序で、最後のもののようなものを持ちたいのですが、各ラベルの前に ABC を付ける必要はありません。
これどうやってするの?
PS: stat_smooth を使用していますが、geom_line でも同じことが起こります