Mit diesem Datenrahmen ("df"):
year pollution
1 1999 346.82000
2 2002 134.30882
3 2005 130.43038
4 2008 88.27546
Ich versuche ein Liniendiagramm wie folgt zu erstellen:
plot5 <- ggplot(df, aes(year, pollution)) +
geom_point() +
geom_line() +
labs(x = "Year", y = "Particulate matter emissions (tons)", title = "Motor vehicle emissions in Baltimore")
Der Fehler, den ich bekomme, ist:
geom_path: Jede Gruppe besteht nur aus einer Beobachtung. Müssen Sie die Gruppenästhetik anpassen?
Das Diagramm wird als Streudiagramm angezeigt, obwohl ich ein Liniendiagramm möchte. Ich habe versucht , ersetzen geom_line()
mit , geom_line(aes(group = year))
aber das hat nicht funktioniert.
In einer Antwort wurde mir gesagt, ich solle das Jahr in eine Faktorvariable umwandeln. Ich habe es getan und das Problem bleibt bestehen. Dies ist die Ausgabe von str(df)
und dput(df)
:
'data.frame': 4 obs. of 2 variables:
$ year : num 1 2 3 4
$ pollution: num [1:4(1d)] 346.8 134.3 130.4 88.3
..- attr(*, "dimnames")=List of 1
.. ..$ : chr "1999" "2002" "2005" "2008"
structure(list(year = c(1, 2, 3, 4), pollution = structure(c(346.82,
134.308821199349, 130.430379885892, 88.275457392443), .Dim = 4L, .Dimnames = list(
c("1999", "2002", "2005", "2008")))), .Names = c("year",
"pollution"), row.names = c(NA, -4L), class = "data.frame")
df
nicht das, was Sie denken. Bitte geben Sie Ihre Frage in reproduzierbarer Form an, dh zeigen Sie die Ausgabe vondput(df)
.Antworten:
Sie müssen nur
group = 1
ggplot oder geom_line aes () hinzufügen .Referenz: Kochbuch für R, Kapitel: Diagramme Bar_and_line_graphs_ (ggplot2), Liniendiagramme.
Versuche dies:
quelle
group
Argument erfolgen muss. Eine Gruppierung nur zB nachcolor
würde nicht ausreichen.Sie erhalten diesen Fehler, weil eine Ihrer Variablen tatsächlich eine Faktorvariable ist. Ausführen
um dies zu überprüfen. Führen Sie dann diese doppelte Variablenänderung durch, um die Jahreszahlen beizubehalten, anstatt sie in "1,2,3,4" -Niveaus umzuwandeln:
BEARBEITEN: Es scheint, dass Ihr data.frame eine Variable der Klasse "array" hat, die die pb verursachen kann. Versuchen Sie dann:
und wieder planen?
quelle
Ich hatte ein ähnliches Problem mit dem Datenrahmen:
Ich denke, die Variable für die x-Achse sollte numerisch sein, damit geom_line weiß, wie man die Punkte verbindet, um die Linie zu zeichnen.
nachdem ich die 2. Spalte in numerisch geändert habe:
dann funktioniert es.
quelle
Starten Sie R in einer neuen Sitzung und fügen Sie diese ein:
quelle
Ich habe eine ähnliche Aufforderung erhalten. Das lag daran, dass ich die x-Achse in Prozent angegeben hatte (zum Beispiel: 10% A, 20% B, ....). Ein alternativer Ansatz könnte also sein, dass Sie diese Werte multiplizieren und in der einfachsten Form schreiben.
quelle