Z tą ramką danych („df”):
year pollution
1 1999 346.82000
2 2002 134.30882
3 2005 130.43038
4 2008 88.27546
Próbuję stworzyć taki wykres liniowy:
plot5 <- ggplot(df, aes(year, pollution)) +
geom_point() +
geom_line() +
labs(x = "Year", y = "Particulate matter emissions (tons)", title = "Motor vehicle emissions in Baltimore")
Otrzymuję błąd:
geom_path: każda grupa składa się tylko z jednej obserwacji. Potrzebujesz dostosować estetykę grupy?
Wykres pojawia się jako wykres punktowy, mimo że chcę mieć wykres liniowy. Starałem się wymienić geom_line()
z geom_line(aes(group = year))
ale to nie działa.
W odpowiedzi powiedziano mi, żebym przeliczył rok na zmienną czynnikową. Zrobiłem i problem nadal występuje. Oto wynik działania str(df)
i 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
nie jest to to, o czym myślisz. Proszę podać swoje pytanie w powtarzalnej formie, tj. Pokazać wynikdput(df)
.Odpowiedzi:
Musisz tylko dodać
group = 1
do ggplot lub geom_line aes ().Źródła : Książka kucharska dla języka R, rozdział: Wykresy Bar_and_line_graphs_ (ggplot2), Wykresy liniowe.
Spróbuj tego:
źródło
group
argumentem. Grupowanie tylko np.color
Otrzymujesz ten błąd, ponieważ jedna z twoich zmiennych jest w rzeczywistości zmienną czynnikową. Wykonać
żeby to sprawdzić. Następnie wykonaj tę podwójną zmianę zmiennej, aby zachować numery lat zamiast przekształcać się w liczby poziomów „1,2,3,4”:
EDYCJA: wygląda na to, że twoja data.frame ma zmienną klasy "tablica", która może powodować pb. Spróbuj więc:
i znowu spiskować
źródło
Miałem podobny problem z ramką danych:
Myślę, że zmienna dla osi x powinna być numeryczna, aby geom_line wiedział, jak połączyć punkty, aby narysować linię.
po zmianie drugiej kolumny na numeryczną:
wtedy to działa.
źródło
Uruchom R w nowej sesji i wklej to w:
źródło
Otrzymałem podobny monit. To dlatego, że określiłem oś x w procentach (na przykład: 10% A, 20% B, ...). Zatem alternatywnym podejściem może być pomnożenie tych wartości i zapisanie ich w najprostszej formie.
źródło