Articles

R Istogrammi

Posted on

In questo articolo, imparerete ad usare la funzione hist() per creare istogrammi nella programmazione R con l’aiuto di numerosi esempi.

L’istogramma può essere creato usando la funzione hist() nel linguaggio di programmazione R. Questa funzione prende un vettore di valori per i quali viene tracciato l’istogramma.

Utilizziamo il dataset incorporato airquality che ha misure giornaliere della qualità dell’aria a New York, da maggio a settembre 1973.

> str(airquality)'data.frame':153 obs. of 6 variables:$ Ozone : int 41 36 12 18 NA 28 23 19 8 NA ...$ Solar.R: int 190 118 149 313 NA NA 299 99 19 194 ...$ Wind : num 7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...$ Temp : int 67 72 74 62 56 66 65 59 61 69 ...$ Month : int 5 5 5 5 5 5 5 5 5 5 ...$ Day : int 1 2 3 4 5 6 7 8 9 10 ...

Utilizzeremo il parametro temperatura che ha 154 osservazioni in gradi Fahrenheit.

Esempio 1: Istogramma semplice

Temperature <- airquality$Temphist(Temperature)

Istogramma semplice in programmazione R

Possiamo vedere sopra che ci sono 9 celle con interruzioni equamente distanziate. In questo caso, l’altezza di una cella è uguale al numero di osservazioni che cadono in quella cella.

Possiamo passare parametri aggiuntivi per controllare l’aspetto del nostro grafico. Potete leggere su di essi nella sezione Aiuto ?hist.

Alcuni di quelli usati frequentemente sono, main per dare il titolo, xlab e ylab per fornire etichette per gli assi, xlim e ylim per fornire la gamma degli assi, col per definire il colore ecc.

Inoltre, con l’argomento freq=FALSE possiamo ottenere la distribuzione di probabilità invece della frequenza.

Esempio 2: Istogramma con aggiunta di parametri

# histogram with added parametershist(Temperature,main="Maximum daily temperature at La Guardia Airport",xlab="Temperature in degrees Fahrenheit",xlim=c(50,100),col="darkmagenta",freq=FALSE)

Creare un istogramma in R con parametri come il colore.

Nota che l’asse y è chiamato densità invece che frequenza. In questo caso, l’area totale dell’istogramma è uguale a 1.

Valore restituito di hist()

La funzione hist() restituisce una lista con 6 componenti.

> h <- hist(Temperature)> h$breaks 55 60 65 70 75 80 85 90 95 100$counts 8 10 15 19 33 34 20 12 2$density 0.010457516 0.013071895 0.019607843 0.024836601 0.043137255 0.044444444 0.026143791 0.015686275 0.002614379$mids 57.5 62.5 67.5 72.5 77.5 82.5 87.5 92.5 97.5$xname "Temperature"$equidist TRUEattr(,"class") "histogram"

Vediamo che viene restituito un oggetto di classe histogram che ha:

  • breaks-luoghi in cui si verificano le interruzioni,
  • countsil numero di osservazioni che rientrano in quella cella,
  • density-la densità delle celle, midsi punti medi delle celle,
  • xnameil nome dell’argomento x e
  • equidistun valore logico che indica se le interruzioni sono equamente spaziate o meno.

Possiamo usare questi valori per ulteriori elaborazioni.

Per esempio, nell’esempio seguente usiamo i valori di ritorno per mettere i conteggi in cima ad ogni cella usando la funzione text().

Esempio 3: Usare i valori di ritorno dell’istogramma per le etichette usando text()

h <- hist(Temperature,ylim=c(0,40))text(h$mids,h$counts,labels=h$counts, adj=c(0.5, -0.5))

Istogramma con valore di ritorno del testo

Definire il numero di interruzioni

Con l’argomento breaks possiamo specificare il numero di celle che vogliamo nell’istogramma. Tuttavia, questo numero è solo un suggerimento.

R calcola il miglior numero di celle, tenendo presente questo suggerimento. Di seguito sono riportati due istogrammi sugli stessi dati con diverso numero di celle.

Esempio 4: Istogramma con diverse pause

hist(Temperature, breaks=4, main="With breaks=4")hist(Temperature, breaks=20, main="With breaks=20")

R Istogramma con pausa

Nella figura precedente vediamo che il numero effettivo di celle tracciate è maggiore di quello specificato. Questo rende possibile tracciare un istogramma con intervalli disuguali. In tal caso, l’area della cella è proporzionale al numero di osservazioni che rientrano in quella cella.

Esempio 5: Istogramma con larghezza non uniforme

hist(Temperature,main="Maximum daily temperature at La Guardia Airport",xlab="Temperature in degrees Fahrenheit",xlim=c(50,100),col="chocolate",border="brown",breaks=c(55,60,70,75,80,100))

Istogramma R con larghezze diverse

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *