Per
la rappresentazione grafica di dati qualitativi il metodo più
generico, ma anche il più limitato, in quanto adatto essenzialmente
alla rappresentazione dei rapporti percentuali, è rappresentato dai
grafici a torta o pie
chart. A causa del fatto che
l'occhio umano ha una scarsa capacità nella valutazione degli angoli
i grafici a torta non sono raccomandati nella rappresentazione di
dati scientifici [1]. Nonostante questo anche in R sono
disponibili strumenti grafici per la realizzazione dei grafici a
torta.
Nell'esempio, tratto da Marubini [2], il numero di individui
prodotti per ciascuna delle varietà AB, Ab, aB,
ab in un esperimento di ibridazione di specie vegetali era:
AB
|
Ab
|
aB
|
ab
|
72
|
29
|
36
|
12
|
Con
questo script viene generato un grafico a torta con i valori
originali trasformati in percentuale e con una legenda esterna. Copiatelo
e incollatelo nella
Console
di R e
premete
↵
Invio:
#
GRAFICO A TORTA
#
val
<- c(72, 29, 36, 12) # valori
eti
<- c("AB","Ab","aB","ab")
# etichette
percent
<- round(100*val/sum(val), 1) # percentuale per ciascun
valore
#
windows()
# apre una nuova finestra
pie(val,
labels = percent, main = "Individui prodotti per ciascuna
varietà", col = rainbow(length(val))) # grafico a torta con percentuali e legenda esterna
legend("topright",
eti, cex = 0.8, fill = rainbow(length(val))) # riporta la
legenda
#
Con
le prime tre righe di codice sono generati:
→ l'array
val che contiene i valori
corrispondenti alle quattro “fette” della torta;
→ l'array
eti che contiene le
etichette/descrizioni associate alle “fette”;
→ l'array
percent
che contiene i valori dell'array val
trasformati in percentuale (ciascun valore val
viene diviso per la somma totale dei valori sum(val)
e moltiplicato per 100 (100*),
quindi il risultato viene arrotondato a un decimale con l'argomento ,
1 e viene infine salvato (<- )
nell'array percent).
Dopo
avere aperto alla quarta riga una nuova finestra grafica con la
funzione windows(), alla quinta
riga la funzione pie() traccia un
grafico a torta impiegando i seguenti argomenti:
→ i
valori val da
rappresentare;
→ le
relative etichette label
con i
valori percentuali percent
calcolati in precedenza;
→ il
titolo del grafico main;
→ il
colore col
che viene cambiato a ciascuna “fetta” con la funzione
rainbow() e impiegando tanti
colori quante sono le fette con la funzione lenght(val).
Infine
viene riportata la legenda con la funzione legend()
che prevede i seguenti argomenti:
→ "topright"
per la posizione in alto a destra;
→ eti
per le etichette da impiegare;
→ cex
= 0.8 per le dimensioni;
→ fill
per i colori che riprendono ovviamente quelli definiti nella funzione
pie().
Oltre ai grafici a torta tradizionali è possibile generare grafici a torta 3D mediante un pacchetto aggiuntivo, il pacchetto plotrix, che deve essere scaricato dal CRAN.
In
quest'altro script le novità rispetto al precedente sono:
→ l'impiego
del pacchetto plotrix;
→ la
funzione pie3D() in sostituzione
della funzione pie();
→ l'argomento
explode=0.1 che consente di
variare quanto le fette sono distanziate l'una dall'altra (è
possibile scegliere non solo valori superiori ma anche valori
inferiori a 0.1);
→ l'argomento
bty="n" che consente di
eliminare il riquadro delle didascalie che era presente nella figura
precedente.
Se non l'avete già fatto, prima di eseguire lo script dovete scaricare e installare il pacchetto plotrix. Copiate
lo script, incollatelo nella Console
di R e
premete ↵
Invio:
#
GRAFICO A TORTA 3D
#
library(plotrix)
# carica il pacchetto
#
val
<- c(72, 29, 36, 12) # valori
eti
<- c("AB","Ab","aB","ab")
# etichette
percent
<- round(100*val/sum(val), 1) # percentuale per ciascun
valore
#
windows()
# apre una nuova finestra
pie3D(val,
labels = percent, explode = 0.1, main = "Individui prodotti per
ciascuna varietà", col = rainbow(length(val)))
# grafico a torta 3D con percentuali e legenda esterna
legend("topright",
eti, cex = 0.8, fill = rainbow(length(val)), bty="n")
# riporta la legenda
#
Altre
modalità di rappresentazione dei grafici a torta sono possibili
impiegando il pacchetto plotly [3] e il pacchetto ggplot2
[4].
----------
[1]
"Percentages ... can also be expressed using a pie-chart,
but since the human eye is very poor at comparing angles, we do not
recommend these for display purposes". Campbell MJ, Machin
D. Medical Statistics. A Commonsense Approach. John Wiley &
Sons, New York, 1993, ISBN 0-471-93764-9, p. 54.
[2]
Vedere il post: Test chi-quadrato 1 riga · n colonne.
[3]
Vedere: Pie Charts in R. How to make pie charts in R using plotly.
URL consultato il 9/12/2018.
[4]
Vedere: ggplot2 pie chart in STDHA. Statistical tools for high-throughput data analysis. URL consultato il 9/12/2018.
Salve, in primis ringrazio quanti si sono impegnati e si stanno impegnando per realizzare questa web-guide per R. Vorrei chiedervi se fosse possibile aggiungere i valori (non in percentuale ma i valori reali) in un grafico a barre. Vorrei mostrare su ogni barra il suo valore corrispondente. Ho provato ad usare la funzione labels ma R non me lo permette. Avete qualche suggerimento? Grazie
RispondiElimina