Avec cette trame de données ("df"):
year pollution
1 1999 346.82000
2 2002 134.30882
3 2005 130.43038
4 2008 88.27546
J'essaie de créer un graphique en courbes comme celui-ci:
plot5 <- ggplot(df, aes(year, pollution)) +
geom_point() +
geom_line() +
labs(x = "Year", y = "Particulate matter emissions (tons)", title = "Motor vehicle emissions in Baltimore")
L'erreur que j'obtiens est:
geom_path: chaque groupe se compose d'une seule observation. Avez-vous besoin d'ajuster l'esthétique du groupe?
Le graphique apparaît sous forme de nuage de points même si je souhaite un graphique linéaire. J'ai essayé de remplacer geom_line()
par geom_line(aes(group = year))
mais cela n'a pas fonctionné.
Dans une réponse, on m'a dit de convertir l'année en une variable factorielle. Je l'ai fait et le problème persiste. Ceci est la sortie de str(df)
et 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
n'est probablement pas ce que vous pensez. Veuillez formuler votre question sous une forme reproductible, c'est-à-dire afficher la sortie dedput(df)
.Réponses:
Vous n'avez qu'à ajouter
group = 1
dans le ggplot ou geom_line aes ().Référence: Cookbook for R, Chapter: Graphs Bar_and_line_graphs_ (ggplot2), Line graphs.
Essaye ça:
la source
group
argument. Regrouper uniquement par exemple parcolor
ne serait pas suffisant.J'ai juste eu ce problème et j'espère que cela aidera quelqu'un àVous obtenez cette erreur car l'une de vos variables est en fait une variable de facteur. Exécuter
pour vérifier cela. Ensuite, faites ce changement de variable double pour conserver les numéros d'année au lieu de les transformer en numéros de niveau "1,2,3,4":
EDIT: il apparaît que votre data.frame a une variable de classe "array" qui pourrait provoquer le pb. Essayez alors:
et comploter à nouveau?
la source
J'ai eu un problème similaire avec la trame de données:
Je pense que la variable pour l'axe x devrait être numérique, de sorte que geom_line sache comment connecter les points pour dessiner la ligne.
après avoir changé la 2ème colonne en numérique:
alors ça marche.
la source
Démarrez R dans une nouvelle session et collez-le dans:
la source
J'ai eu une invite similaire. C'était parce que j'avais spécifié l'axe des x en termes de pourcentage (par exemple: 10% A, 20% B, ....). Une autre approche pourrait donc être de multiplier ces valeurs et de les écrire sous la forme la plus simple.
la source