/ / Comment utiliser ggplot2 pour générer un camembert? - r, ggplot2

Comment utiliser ggplot2 pour générer un graphique en secteurs? - r, ggplot2

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 № 1

Les 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

entrer la description de l'image ici

Il ne reste plus qu'à ajouter coord_polar:

pie <- bar + coord_polar(theta = "y")
pie

entrer la description de l'image ici

Vous pouvez ajouter theme_void() déposer des axes et des étiquettes:

pie + coord_polar(theta = "y") + theme_void()

entrer la description de l'image ici