iris, mtcars, diamonds
R fourni des jeu de données , très pratique car contenant l’ensemble des caractéristiques permettant d’exploiter les fonctions de R.
iris contient un jeu de données de 50 plantes de 3 espèces d’iris différentes.
En botanique la taxonomie en fait de cette manière: genre, espèce, nom commun, famille.
C’est espèces sont:
- setosa
- virginica
- versicolor
Et pour chacune de ces espèces, les observation sont:
- la largeur et la longueur des sépales
- la largeur et la longueur des pétales
Exemple simple sans data
On crée un simple graphique en barre barplot
, en leur attribuant une valeur arbitraire (c(3, 7))
, puis on applique une couleur (moche) de manière tout aussi arbitraire , col = c("darkblue", "red")
.
Avec un jeu comme iris, on va pouvoir attribuer des couleurs en fonctions des caractéristiques de chaque espèces, de créer des groupes et mettre en avant les valeurs distinguant les espèces les unes des autres.
library(ggplot2)
theme_set(theme_bw())
barplot(c(3, 7), col = c("darkblue", "red"))
Inspectons iris
Nous retrouvons bien 150 observations réparti en 5 variables:
- longueur des sépales
- largeur des sépales
- longueur des pétales
- longueur des pétales
- les espèces
On notera la présence du terme factor, car il y a un facteur catégorisant : les 3 espèces différentes.
str(iris)
## 'data.frame': 150 obs. of 5 variables:
## $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
## $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
## $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
## $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
## $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
Créons donc un graphique de répartition
En appliquant une couleur arbitraire pour chaque espèces
ggplot(iris, aes(Species, Sepal.Length)) +
geom_boxplot(aes(fill = Species)) +
scale_fill_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))
En appliquant une palette de couleur
ggplot(iris, aes(Species, Sepal.Length)) +
geom_boxplot(aes(fill = Species)) +
scale_fill_brewer(palette = "Pastel2")
library("ggsci")
ggplot(iris, aes(Species, Sepal.Length)) +
geom_boxplot(aes(fill = Species)) +
scale_fill_lancet()
library(ggplot2)
library(ggridges)
theme_set(theme_minimal())
ggplot(iris, aes(x = Sepal.Length, y = Species, fill = Species)) +
geom_density_ridges(
aes(point_color = Species, point_fill = Species, point_shape = Species),
alpha = .2, point_alpha = 1, jittered_points = TRUE
) +
scale_point_color_hue(l = 40) +
scale_discrete_manual(aesthetics = "point_shape", values = c(21, 22, 23))
## Picking joint bandwidth of 0.181