Segui il canale Telegram
Max 3 mess. al giorno (cos'è?)
Ultimi post del blog
Video e tutorial
Pagine aggiornate
Formazione
Ricerca sociale con R (il libro)
Il diagramma a torta (detto anche diagramma circolare) è un tipo di diagramma utilizzato in statistica descrittiva per rappresentazioni grafiche di variabili quantitative misurate su classi di categorie (valori nominali), al fine di evitare di stabilire, anche involontariamente, un ordine che non esiste nelle categorie (cosa che accadrebbe utilizzando un istogramma).
Un diagramma circolare viene costruito dividendo un cerchio in spicchi le cui ampiezze angolari sono proporzionali alle classi di frequenza. Come per l'istogramma, le aree sono proporzionali alle frequenze.
Nel caso di frequenze relative la somma delle aree è 1 (ovvero 100%).
In R, i grafici a torta vengono principalmente realizzati con il comando pie.
Per realizzare un grafico a torta semplice, bisogna partire dalle frequenze della variabile nominale, e scrivere dunque il comando
pie(table(x))
oppure
table1<-(table(x)) pie(table1)
require(MASS) table1<-table(survey$Smoke) # definiamo i colori e le etichette cols<-c("darkblue","lightyellow","orange","lightblue") labs<-c("Molto", "Mai", "Occas", "Regol") pie(table1, main="Fumano", labels=labs, col=cols)
In questo caso, vogliamo che le etichette riportino anche le frequenze. “Incolliamo” quindi le frequenze (contenute in table1
) alle etichette di modalità (labs
):
lbls<-paste(labs, table1)
Infine, disegnamo la torta:
pie(table1, main="Fumano", labels = lbls, col=cols)
In questo caso, riportiamo le etichette di modalità nella legenda, e le percentuali in corrispondenza delle “fette”.
La procedura è simile a quella illustrata sopra:
Calcoliamo le percentuali con un decimale (vedi table()
, margin.table()
e round()
), e creiamo le etichette:
pct<-round((table1/margin.table(table1)*100),1)
Incolliamo il simbolo %
, senza spazi:
lbls<-paste(pct,"%",sep="")
pie(table1, main="Fumano", labels = lbls, col=cols)
Aggiungiamo la legenda (verrà disegnata sul grafico):
legend(0.7, 1.0, cex = 0.8, legend=labs, fill = cols) # 0.7, 1.0 = coordinate della legenda; # cex = dimensioni della legenda
# i dati require(MASS) table1<-table(survey$Smoke) # definiamo i colori e le etichette cols<-c("darkblue","lightyellow","orange","lightblue") labs<-c("Molto", "Mai", "Occas", "Regol") # grafico a torta semplice pie(table1, main="Fumano", labels=labs, col=cols) # etichette con frequenze lbls<-paste(labs, table1) pie(table1, main="Fumano", labels = lbls, col=cols) # etichette con percentuali pct<-round((table1/margin.table(table1)*100),1) lbls<-paste(pct,"%",sep="") pie(table1, main="Fumano", labels = lbls, col=cols) #legenda legend(0.7, 1.0, cex = 0.8, legend=labs, fill = cols) # 0.7, 1.0 = coordinate della legenda; # cex = dimensioni della legenda