Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Grafici con R

Una panoramica sull'uso delle principali funzioni messe a disposizione dal framework R per realizzare grafici sfruttando i contenuti di varie strutture dati
Una panoramica sull'uso delle principali funzioni messe a disposizione dal framework R per realizzare grafici sfruttando i contenuti di varie strutture dati
Link copiato negli appunti

Spesso si dice che un'immagine vale più di mille parole, e ciò vale anche in ambito scientifico e statistico, dove la moltitudine
dei dati rende spesso poco chiaro il messaggio che essi portano. Per questo, si usano spesso grafici di vario tipo per visualizzare in modo più immediato il contenuto informativo delle nostre analisi. R possiede al suo interno un ambiente di plotting che permette di realizzare grafici con le informazioni inserite nelle proprie strutture dati, e che sarà oggetto di questa lezione.

Primi esempi

Iniziamo a realizzare qualche script in cui la funzione plot mostri quanto velocemente possano essere rappresentati visualmente i nostri dati:

incassi <- c(1700, 858, 1834, 2100, 1652)
plot(incassi, type="l", col="green")
title(main="Incassi", col.main="blue", font.main="4")

L'immagine seguente mostra il risultato così ottenuto:

Figura 1. Grafico lineare a due dimensioni (click per ingrandire)

Grafico lineare a due dimensioni

Le direttive che vengono inoltrate ad R per ottenere un grafico di questo tipo coinvolgono innanzitutto la funzione plot title type

  • p
  • h
  • s
  • o

Proponiamo ora una versione più avanzata dello script appena visto:

incassiNegozioA <- c(1700, 858, 1834, 2100, 1652)
incassiNegozioB <- c(1945, 1254, 1341, 1657, 1402)
mesi <- c("Gen", "Feb", "Mar", "Apr", "Mag")
df <- data.frame(mesi,incassiNegozioA, incassiNegozioB)

plot(df$incassiNegozioA, type="b", lty="dashed", col="red", axes=FALSE, ann=FALSE)
lines(df$incassiNegozioB, type="l", col="blue")
title(main="Incassi", col.main="blue", font.main="4", xlab="Mesi", ylab="Euro")
box()
axis(1, at=1:5, lab=df$mesi)
axis(2, las=1, at=seq(min(incassi), max(incassi), 300))

ed il risultato sarà il seguente:

Figura 2. Grafico con due linee (click per ingrandire)

Grafico con due linee

Notiamo gli aspetti di maggior rilevanza:

  • i dati provengono da un data.frame
    difficoltà, in quanto sarà sufficiente usare l'operatore $
  • sono presenti due linee plot lines
  • la funzione plot non vengano nè etichettati nè disegnati gli assi axes=FALSE, ann=FALSE
  • la funzione title etichettare gli assi xlab ylab
  • l'invocazione a box disegnare il riquadro intorno al grafico axes=FALSE
  • la funzione axis seq

Altri tipi di grafici

I grafici lineari non sono l'unico tipo di grafico esistente, ed R permette di realizzarne di vari generi. Prendiamo ad esempio il grafico a torta, che mostra un cerchio suddiviso in spicchi, ognuno dei quali rappresenta una percentuale.

Il seguente script predispone un grafico a torta, sfruttando la funzione e pie:

incassi <- c(1945, 1254, 1341, 1657, 1402)
mesi <- c("Gen", "Feb", "Mar", "Apr", "Mag")
df <- data.frame(mesi,incassi)
pie(df$incassi, labels=df$mesi)

Questo il risultato che se ne ricava:

Figura 3. Grafico a torta (click per ingrandire)

Grafico a torta

R ci permette anche di modellare le etichette in maniera da avere anche la percentuale corrispondente alle singole fette. Sarà sufficiente eseguire un'operazione di questo tipo:

incassi <- c(1945, 1254, 1341, 1657, 1402)
etichette <- paste(incassi," (",round(incassi/sum(incassi)*100, 1), "%)")
pie(df$incassi, labels=etichette)

dove il testo delle etichette sarà frutto di un calcolo di proporzioni.

Figura 4. Grafico a torta con etichette ridefinite (click per ingrandire)

Grafico a torta con etichette ridefinite

Oltre a grafici a torta ve ne sono molti altri disponibili come:

  • grafici a barre barplot
  • grafici a punti dotchart
  • istogrammi hist

Un aspetto interessante è che i parametri che verranno coinvolti in tutte queste funzioni saranno gli stessi sia come denominazione sia come utilizzo, rendendo semplice ed uniforme l'uso pratico dei vari tipi di grafico disponibili.

Aggiungere una legenda

Ai fini della leggibilità del grafico, l'aggiunta di una legenda è spesso fondamentale. Immaginiamo di volerne creare una simile:

Figura 5. Creazione di una legenda (click per ingrandire)

Creazione di una legenda

Dovremo utilizzare la funzione legend

legend(1,2000,c("Incassi Negozio A", "Incassi Negozio B"), col=c("red","blue"), lty=c(3,1), pch=c(1, NA))

I parametri che passiamo sono:

  • le coordinate
  • le etichette
  • il colore delle icone col
  • le icone pch lty legend

Conclusioni

Abbiamo visto in questa lezione gli strumenti di base per creare grafici in R. Esistono molte tipologie di grafici, e la loro utilità dipende molto dal caso d'uso specifico.

Si consideri, inoltre, che esistono altri package oltre a quelli "di serie", che possono essere integrati nei nostri script e reperiti con facilità su Google: tali ulteriori alternativi possono portare beneficio sia dal punto di vista funzionale che da quello estetico.

Ti consigliamo anche