J'ai un vecteur de valeurs que j'aimeraisafficher sous forme de camembert. Le vecteur consiste en 1 "s, 2" s et 3 "s, et je voudrais que mon graphique à secteurs affiche le pourcentage de 1" s, 2 "et 3" s dans le vecteur en plus des étiquettes pour le les zones. Les 1 "s seraient des Démocrates, les 2" Républicains et les 3 "Indépendants. Le vecteur sur lequel je travaille est une colonne de trame de données. numeric () et as.factor ().
Voici un exemple de la df (remarque, comme vous pouvez le voir dans le code, je suis interessé dans le col Q7):
Q6 Q7 Q8 Q9
3 30 3 5 1
4 30 3 5 1
5 65 3 2 2
6 29 3 5 1
7 23 1 4 1
8 24 1 5 1
Voici le code que j'ai essayé:
install.packages("ggplot2")
library(ggplot2)
# pie graph for party
pie <- ggplot(data=data, aes(x = as.factor(data$Q7), fill = factor(cyl)))
pie + coord_polar(theta = "y")
Il renvoie une erreur: "Pas de couches dans le tracé"
Merci pour l'aide!
Réponses:
26 pour la réponse № 1Les graphiques polaires dans ggplot sont essentiellement des graphiques à barres empilées transformés, vous avez donc besoin geom_bar
pour le faire fonctionner. Nous utiliserons un seul groupe (x = factor(1)
) rassembler toutes les valeurs et fill
sur la colonne d'intérêt pour diviser la zone. À ce stade, vous obtiendrez un diagramme à barres avec une seule barre.
bar <- ggplot(data, aes(x = factor(1), fill = factor(Q7))) + geom_bar(width = 1)
bar
Il ne reste plus qu'à ajouter coord_polar
:
pie <- bar + coord_polar(theta = "y")
pie
Vous pouvez ajouter theme_void()
déposer des axes et des étiquettes:
pie + coord_polar(theta = "y") + theme_void()