UTILISATION DE GGPLOT2
plot(price~carat,data=diamonds2)
ggplot(diamonds2)
ggplot(diamonds2)+aes(x=carat,y=price)
ggplot(diamonds2)+aes(x=carat,y=price)+geom_point()
ggplot(diamonds2)+aes(x=carat,y=price)
ggplot(diamonds2)+aes(x=carat,y=price,color=cut)
Géométries
“Pour un nuage de points, on utilisera par exemple geom_point”
ggplot(diamonds2)+aes(x=carat,y=price,color=cut)+geom_point()
ggplot(diamonds2)+aes(x=carat,y=price,color=cut)+geom_line()
ggplot(diamonds2)+aes(x=carat,y=price,color=cut)+geom_abline()
ggplot(diamonds2)+aes(x=carat,y=price,color=cut)+geom_boxplot()
ggplot(diamonds2)+aes(x=carat,y=price,color=cut)+geom_area()
ggplot(diamonds2)+aes(x=carat,y=price,color=cut)+geom_polygon()
Statistics dans ggplot
D <- data.frame(X=seq(-2*pi,2*pi,by=0.01))
ggplot(D)+aes(x=X,y=sin(X))+geom_line()
D <- data.frame(X=seq(-2*pi,2*pi,by=0.01))
ggplot(D)+aes(x=X,y=sin(X))+geom_abline()
D <- data.frame(X=seq(-2*pi,2*pi,by=0.01))
ggplot(D)+aes(x=X,y=sin(X))+geom_polygon()
D <- data.frame(X=seq(-2*pi,2*pi,by=0.01))
ggplot(D)+aes(x=X,y=sin(X))+geom_point()
“Par défaut geom_histogram fait appel à cette fonction stat_bin grâce à l’option stat=”bin”. On visualise ainsi sur l’axe 𝑦 le nombre d’observations dans chaque classe (la variable count)”
ggplot(diamonds2)+aes(x=price)+geom_histogram(bins=40)
“Si on souhaite une autre variable issue de stat_bin, comme par exemple la densité”
ggplot(diamonds2)+aes(x=price,y=..density..)+geom_histogram(bins=40)
## Warning: The dot-dot notation (`..density..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(density)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
ggplot(diamonds2)+aes(x=price,y=..density..)+stat_bin()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Scales avec ggplot
“On utilise généralement ce verbe à la dernière étape de construction du graphe. La syntaxe est définie comme suit : — début : scale_. — ajout de l’aesthetics que l’on souhaite modifier (color_, fill_, x_). — fin : nom de l’échelle (manual, identity…)”
ggplot(diamonds2)+aes(x=carat,y=price,color=cut)+geom_point()+
scale_color_manual(values=c("Fair"="black","Good"="yellow",
"Very Good"="blue","Premium"="red","Ideal"="green"))
“Couleur dans un diagramme en barres”
p1 <- ggplot(diamonds2)+aes(x=cut)+geom_bar(aes(fill=cut))
p1
“On change la couleur en utilisant la palette Purples”
p1+scale_fill_brewer(palette="Purples")
“Gradient de couleurs pour un nuage de points”
p2 <- ggplot(diamonds2)+aes(x=carat,y=price)+geom_point(aes(color=depth))
p2
“changement du gradient de couleur”
p2+scale_color_gradient(low="red",high="yellow")
“Modifications sur les axes”
p2+scale_x_continuous(breaks=seq(0.5,3,by=0.5))+
scale_y_continuous(name="prix")+
scale_color_gradient("Profondeur")
Group et facets avec ggplot
“Représentons ici (sur le même graphe) le lisseur price vs carat pour chaque modalité de cut”
ggplot(diamonds2)+aes(x=carat,y=price,group=cut)+
geom_smooth(method="loess")
## `geom_smooth()` using formula = 'y ~ x'
“Pour obtenir cette représentation sur plusieurs fenêtres, on utilise”
ggplot(diamonds2)+aes(x=carat,y=price)+
geom_smooth(method="loess")+facet_wrap(~cut)
## `geom_smooth()` using formula = 'y ~ x'
ggplot(diamonds2)+aes(x=carat,y=price)+
geom_smooth(method="loess")+facet_wrap(~cut,nrow=1)
## `geom_smooth()` using formula = 'y ~ x'
“acet_grid et facet_wrap font des choses proches mais divisent la fenêtre d’une façon différente”
ggplot(diamonds2)+aes(x=carat,y=price)+geom_point()+
geom_smooth(method="lm")+facet_grid(color~cut)
## `geom_smooth()` using formula = 'y ~ x'
Compléments de graphique avec ggplot
ggplot(diamonds2)+aes(x=carat,y=price)+geom_point()
ggplot(diamonds2)+aes(x=carat,y=price)+geom_line()
ggplot(diamonds2,aes(x=carat,y=price))+geom_boxplot()
## Warning: Continuous x aesthetic
## ℹ did you forget `aes(group = ...)`?
ggplot(diamonds2)+aes(x=carat,y=price)+geom_polygon()
ggplot(diamonds2)+geom_point(aes(x=carat,y=price))
On peut aussi construire un graphe à l’aide de différents jeux de données
X <- seq(-2*pi,2*pi,by=0.001)
Y1 <- cos(X)
Y2 <- sin(X)
donnees1 <- data.frame(X,Y1)
donnees2 <- data.frame(X,Y2)
ggplot(donnees1)+geom_line(aes(x=X,y=Y1))+
geom_line(data=donnees2,aes(x=X,y=Y2),color="red")
Il existe d’autres fonctions ggplot : — ggtitle: pour ajouter un titre, — ggsave: pour sauver un graphe, — theme_: pour changer le theme du graphe.
p <- ggplot(diamonds2)+aes(x=carat,y=price,color=cut)+geom_point()
p+theme_bw()
p+theme_classic()
p+theme_grey()
p+theme_bw()
D’autres thèmes sont disponibles dans le package ggtheme. On pourra également parler de la fonction set_theme qui permet de modifier le thème par défaut pour un document Markdown.