/ / ggplotの線を着色すると「負の添え字」エラーが返される-r、ggplot2

ggplotの色付け行は "負の添字"エラーを返します - r、ggplot2

このおもちゃの例を使用します。

ddd <- c("31/03/1995","30/04/1995","31/05/1995","31/08/2013","30/09/2013","31/10/2013","30/11/2013")
rrr <- c("returns.1","returns.1","returns.1","returns.5","returns.5","returns.5","returns.5")
vvv <- c(-0.204598992791177,3.01855013302475,6.3888266761452,-1.21353731479968,7.20845451481339,3.97428317355226,0.0155720962396065)

df <- cbind(ddd,rrr,vvv)
df <- as.data.frame(df)
df$vvv  <-  as.numeric(df$vvv)

以下を使用して、データをプロットできます(線の凡例/ラベルなし)

ggplot(data=DF,aes(x=ddd,y=vvv)) +
geom_line(aes(group=rrr))

しかし、私は色/伝説を追加したいので、上記で変更します;

ggplot(data=DF,aes(x=ddd,y=vvv)) +
geom_line(aes(group=rrr)) +
geom_line(aes(colour=rrr))

しかし、これは次のエラーを返します

Error in x[1:min(n, length(x))] :
only 0"s may be mixed with negative subscripts

問題が何であるか、またはデータフレームで何を確認する必要があるかについて、何か考えはありますか?

回答:

回答№1は0

なぜなら ddd 要因であり、両方を使用する必要があります group そして colour 〜に 同じ 層。あなたの例では、2つのレイヤーを使用しています。 group、およびなし colour

ggplot(data=df,aes(x=ddd,y=vvv)) +
geom_line(aes(group=rrr, colour=rrr))

ここに画像の説明を入力

別の方法として、日付をファクターではなく日付形式に変換する方法がありますが、日付が離れている場合は、 rrr (また、このように物が実際に正しい順序で表示されることに注意してください):

df$ddd <- as.Date(df$ddd, format="%d/%m/%Y")
ggplot(data=df,aes(x=ddd,y=vvv)) +
geom_line(aes(colour=rrr)) +
facet_wrap(~ rrr, scales="free_x")

ここに画像の説明を入力