Ho un vettore di valori che vorreivisualizza come grafico a torta. Il vettore è composto da 1 "s, 2" se 3 "s, e vorrei che il mio grafico a torta visualizzasse la percentuale di 1" s, 2 "se 3" s nel vettore oltre alle etichette per il le zone. I 1 sarebbero democratici, repubblicani di 2 e indipendenti di 3. Il vettore con cui ho lavorato è una colonna di un dataframe. Potrebbero esserci alcuni problemi di tipo, anche se l'ho passato usando come. numerico () e come.factor ().
Ecco un esempio di df (nota, come puoi vedere nel codice, ho intersecato in 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
Ecco il codice che ho provato:
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")
Restituisce un errore: "Nessun livello nella trama"
Grazie per l'aiuto!
risposte:
26 per risposta № 1I grafici polari in ggplot sono in pratica trasformati in grafici a barre impilati, quindi è necessario geom_bar
per farlo funzionare. Useremo un singolo gruppo (x = factor(1)
) per riunire tutti i valori e fill
sulla colonna di interesse per dividere l'area. A questo punto otterrai un grafico a barre con una sola barra.
bar <- ggplot(data, aes(x = factor(1), fill = factor(Q7))) + geom_bar(width = 1)
bar
Tutto ciò che resta è da aggiungere coord_polar
:
pie <- bar + coord_polar(theta = "y")
pie
Puoi aggiungere theme_void()
per eliminare gli assi e le etichette:
pie + coord_polar(theta = "y") + theme_void()