it-swarm.com.de

Verwendung von `geom_line ()` mit X-Achse als Faktoren

Angenommen, ich habe einen Datenrahmen:

hist <- data.frame(date=Sys.Date() + 0:13,
                   counts=1:14)

Ich möchte die Gesamtzahl gegen den Wochentag darstellen, indem ich ein Linie verwende, um die Punkte zu verbinden. Folgendes setzt Punkte auf jeden Wert:

hist <- transform(hist, weekday=factor(weekdays(date),
                                       levels=c('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')))
ggplot(hist, aes(x=weekday, y=counts)) + geom_point(stat='summary', fun.y=sum)

Wenn ich versuche, sie mit einer Linie zu verbinden (geom_line()), beschwert sich ggplot darüber, dass es nur eine Datenbeobachtung pro Gruppe gibt und daher keine Linie zwischen den Punkten ziehen kann.

Ich verstehe das - es wird versucht, für jeden Wochentag eine Linie zu zeichnen (Faktorstufe).

Wie kann ich ggplot dazu bringen, nur (nur für die Zwecke der Zeile) vorzutäuschen, dass die Wochentage numerisch sind? Vielleicht muss ich eine andere Spalte day_of_week Haben, die 0 für Montag, 1 für Dienstag usw. ist.

49

Wenn ich das Problem richtig verstehe, reicht es aus, group=1 anzugeben und eine stat_summary() - Ebene hinzuzufügen:

ggplot(hist, aes(x=weekday, y=counts, group=1)) +
geom_point(stat='summary', fun.y=sum) +
stat_summary(fun.y=sum, geom="line")

enter image description here

50
bdemarest