/ / Le linee colorate in ggplot restituiscono errori "negative subscripts" - r, ggplot2

Le linee colorate in ggplot restituiscono errori "negative subscripts" - r, ggplot2

Usando questo esempio di giocattolo;

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)

Sono in grado di tracciare i miei dati (senza legenda / etichette per le linee), usando il sotto

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

Ma desidero aggiungere colori / legende, quindi modifico quanto sopra con;

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

Ma questo restituisce il seguente errore

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

Qualche idea su quale sia il problema o su cosa dovrei controllare nella mia cornice dati?

risposte:

0 per risposta № 1

Perché ddd è un fattore, è necessario utilizzare entrambi group e colour sul stesso strato. Nel tuo esempio, stai usando due livelli, uno senza groupe uno senza colour:

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

inserisci la descrizione dell'immagine qui

Un'alternativa è quella di convertire le date in formato data invece che in fattore, anche se con le date così lontane che potresti voler sfaccettare rrr (inoltre, nota in questo modo che la roba viene effettivamente visualizzata nell'ordine corretto):

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")

inserisci la descrizione dell'immagine qui