2017-04-19 5 views
0

Hier ist mein Beispiel mehrere Zeilen mit ggplot plotten. Es erzeugt Fehler unterMehrere Linien mit ggplot in R

library(ggplot2) 
test_df <-data.frame(dates= c('12/12/2011', '12/12/2011', '12/13/2011','12/13/2011'), 
        cat = c('a','b','a','b'), value = c(5,6,8,9)) 

ggplot(data= test_df, aes(x=dates, y = value, colour = cat)) + geom_line() 

Fehler:

geom_path: Each group consists of only one observation. Do you 
need to adjust the group aesthetic? 

Was bin ich? Ich verwendete das folgende Beispiel: Stackoverflow

+2

Ich denke, ggplot warnt Sie, dass es Sie vielleicht missverstehen könnte, weil y Oder geben Sie ihm 4 diskrete "Eimer" mit jeweils nur einem Element und Sie möchten für jeden Eimer eine Linie zeichnen, was keinen Sinn ergibt. Man könnte es prly von ggplot zu Gruppe wieder zu sagen heilen von Katze (Hinzufügen 'group = cat' in' aes' oder durch eine kontinuierliche x Bereitstellung Achse statt einer diskreten ein (zB 'x = lubridate :: mdy (Termine)' in 'aes'). – lukeA

Antwort

1

Der Fehler entsteht als dates in test_df ist eine kategorische Variable

str(test_df) 

'data.frame': 4 obs. of 3 variables: 
$ dates: Factor w/ 2 levels "12/12/2011","12/13/2011": 1 1 2 2 
$ cat : Factor w/ 2 levels "a","b": 1 2 1 2 
$ value: num 5 6 8 9 

Dies kann leicht durch Änderung der Klasse der dates innerhalb des ggplot Befehl korrigiert werden:

ggplot(test_df, aes(x=as.Date(dates, format="%m/%d/%y"), y=value, colour=cat)) + 
    geom_line() 

enter image description here