Créer un histogramme avec ggplot dans R
-
Utilisez
geom_histogram
pour créer un histogramme avecggplot
dans R -
Utilisez les paramètres
fill
,colour
etsize
pour modifier les visuels de l’histogramme dans R -
Utilisez
facet_wrap
pour construire plusieurs histogrammes regroupés par catégorie dans R
Cet article montrera comment créer un histogramme avec ggplot
dans R.
Utilisez geom_histogram
pour créer un histogramme avec ggplot
dans R
Un histogramme simple est construit à l’aide de la fonction geom_histogram
, et il n’a besoin que d’une variable pour tracer le graphe. Dans ce cas, nous utilisons l’ensemble de données diamonds
, à savoir la colonne price
de celui-ci, pour spécifier le mappage sur l’axe des x. geom_histogram
choisit automatiquement la taille du bac et les points de données à l’échelle, sauf si explicitement passé par l’utilisateur.
library(ggplot2)
p1 <- ggplot(diamonds, aes(x = price)) +
geom_histogram()
p1
L’exemple suivant développe l’extrait de code précédent pour spécifier les points d’arrêt sur chaque axe à l’aide des fonctions scale_x_continuous
et scale_y_continuous
. Le paramètre breaks
est utilisé pour transmettre les valeurs générées par la fonction seq
. Les paramètres seq
sont intuitifs à lire car ils forment le motif - (from, to, by)
. Nous utilisons également la fonction grid.arrange
pour afficher deux graphiques côte à côte pour une comparaison visuelle.
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)
Utilisez les paramètres fill
, colour
et size
pour modifier les visuels de l’histogramme dans R
Les paramètres communs tels que fill
, colour
et size
peuvent être utilisés pour modifier le visuel des cases graphiques. Le paramètre fill
spécifie la couleur avec laquelle les cases sont remplies ; en revanche, la colour
est utilisée pour les coups de bac. size
prend une valeur numérique pour indiquer la largeur des traits du bac. Notez également que l’extrait de code suivant ajoute le paramètre name
aux deux axes.
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)
Utilisez facet_wrap
pour construire plusieurs histogrammes regroupés par catégorie dans R
La fonction facet_wrap
peut être utilisée pour dessiner plusieurs histogrammes basés sur l’ensemble de variables. L’ensemble de données diamonds
fournit suffisamment de dimensions pour choisir les variables dans l’une de ses colonnes. Par exemple, nous avons choisi la colonne cut
pour afficher différents histogrammes price
pour chaque type. La fonction theme
peut également être combinée avec le geom_histogram
pour spécifier un formatage personnalisé pour les éléments de graphique.
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