Crea istogramma con ggplot in R

Jinku Hu 30 gennaio 2023
  1. Usa geom_histogram per creare un istogramma con ggplot in R
  2. Usa i parametri fill, colour e size per modificare le immagini dell’istogramma in R
  3. Usa facet_wrap per costruire più istogrammi raggruppati per categoria in R
Crea istogramma con ggplot in R

Questo articolo dimostrerà come creare un istogramma con ggplot in R.

Usa geom_histogram per creare un istogramma con ggplot in R

Un semplice istogramma viene costruito utilizzando la funzione geom_istogramma e richiede solo una variabile per disegnare il grafico. In questo caso, utilizziamo il set di dati diamonds, ovvero la colonna price da esso, per specificare la mappatura sull’asse x. geom_istogramma sceglie automaticamente la dimensione del contenitore e scala i punti dati a meno che non venga esplicitamente passato dall’utente.

library(ggplot2)

p1 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram()

p1

R ggplot istogramma 1

L’esempio seguente espande il frammento di codice precedente per specificare i punti di interruzione su ciascun asse utilizzando le funzioni scale_x_continuous e scale_y_continuous. Il parametro breaks viene utilizzato per passare i valori generati dalla funzione seq. I parametri seq sono intuitivi da leggere mentre formano il modello - (from, to, by). Utilizziamo anche la funzione grid.arrange per visualizzare due grafici fianco a fianco per un confronto visivo.

library(ggplot2)
library(gridExtra)

p1 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram()

p2 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram() +
  scale_y_continuous(breaks = seq(1000, 14000, 2000)) +
  scale_x_continuous(breaks = seq(0, 18000, 2000))

grid.arrange(p1, p2, nrow = 2)

ggplot istogramma 2

Usa i parametri fill, colour e size per modificare le immagini dell’istogramma in R

I parametri comuni come fill, colour e size possono essere utilizzati per modificare la visualizzazione dei contenitori grafici. Il parametro fill specifica il colore con cui vengono riempiti i contenitori; al contrario, colour viene utilizzato per i tratti del raccoglitore. size assume un valore numerico per indicare la larghezza dei tratti del contenitore. Notare anche che il seguente frammento di codice aggiunge il parametro name ad entrambi gli assi.

library(ggplot2)
library(gridExtra)

p3 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram(fill = "pink", colour = "brown") +
  scale_y_continuous(breaks = seq(1000, 14000, 2000)) +
  scale_x_continuous(breaks = seq(0, 18000, 2000))

p4 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram(fill = "pink", colour = "brown", size = .3) +
  scale_y_continuous(breaks = seq(1000, 14000, 2000), name = "Number of diamonds" ) +
  scale_x_continuous(breaks = seq(0, 18000, 2000), name = "Price" )

grid.arrange(p3, p4, nrow = 2)

ggplot istogramma 3

Usa facet_wrap per costruire più istogrammi raggruppati per categoria in R

La funzione facet_wrap può essere utilizzata per disegnare più istogrammi basati sull’insieme di variabili. Il set di dati diamonds fornisce dimensioni sufficienti per scegliere le variabili da una delle sue colonne. Ad esempio, abbiamo scelto la colonna cut per visualizzare diversi istogrammi price per ogni tipo. La funzione tema può anche essere combinata con il geom_histogram per specificare una formattazione personalizzata per gli elementi del grafico.

library(ggplot2)

p5 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram(fill = "pink", colour = "brown", size = .3) +
  scale_y_continuous( name = "Number of diamonds" ) +
  scale_x_continuous( name = "Price" ) +
  facet_wrap(~cut) +
  theme(
    axis.title.x = element_text(
      size = rel(1.2), lineheight = .9,
      family = "Calibri", face = "bold", colour = "black"
    ),
    axis.title.y = element_text(
      size = rel(1.2), lineheight = .9,
      family = "Calibri", face = "bold", colour = "black"
    ),
    plot.background = element_rect("yellow"))


p5

istogramma ggplot 4

Autore: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Articolo correlato - R Plot