Crea istogramma con ggplot in R
-
Usa
geom_histogram
per creare un istogramma conggplot
in R -
Usa i parametri
fill
,colour
esize
per modificare le immagini dell’istogramma in R -
Usa
facet_wrap
per costruire più istogrammi raggruppati per categoria 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
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)
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)
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
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