Tracer un graphique de type y = f(x) (fonction plot) et le mettre en forme
Superposer d'autres informations (polygones, légende, ellipses...)
Autres types de graphiques (logarithmiques, 3D, données calendaires...)
De nombreuses variantes de graphiques peuvent poser des difficultés.
Comment introduire des données temporelles comme des dates ou des heures ?
Comment ajouter une troisième dimension ? Par un troisième axe (graphique ou 3D) ou par un code couleur (heatmap) ?
Comment illustrer la densité des points lorsqu'on a beaucoup de points ?
Il suffit de suivre les rubriques ci-dessous :
plot3d obtenu avec la librairie rgl sous R CRAN (gif animé)
library(MASS) # va générer le kernel (penser à l'installer) (kernel density 2D)
x <- rnorm(100)
y <- rnorm(100)
plot(x,y)
my_kernel <- kde2d(x, y,n=200)
image(my_kernel)
library(raster)
my_raster <- raster(my_kernel)
plot(my_raster)
# n permet de lisser l'image. n grand, image lisse - n petit, image moche
Heatmap à partir d'un scatter-plot à 3 dimensions (la troisième dimension sert à colorer les points et les régions autour).
Nécessite la librairie akima
Heatmap à partir de donner matricielles
Nécessite la librairie plotly
Impose d'avoir des donner complètes pour chaque carré d'une zone
Permet d'avoir une interface sous son explorateur internet pour zoomer et dézoomer
# Simuler des données (peut être remplacé par un vecteur de 400 valeurs
x <- rnorm(400,10,3) ; data = c()
for (i in c(0:19)) {indice = i*20;data <- c(data,sort(x[c((indice+1):(indice+10))]),sort(x[c((indice+11):(indice+20))],decreasing=T))}
# Compiler les données en une matrice m
m <- matrix(data, nrow = 20, ncol = 20,byrow=T)
# Tracer le graphique de température
packageVersion('plotly')
plot_ly( x = c("a", "b", "c"), y = c("d", "e", "f"),
z = m, type = "heatmap")
# Aller plus loin : lien externe
# Simuler des données
x <- rnorm(500,20,10) ; y <- rnorm(500,20,10) ; tableau <- data.frame(Axis1 = x,Axis2 = y)
# Charger ggplot2
library("ggplot2")
# Tracer le graphique de densité
sp <- ggplot(tableau, aes(x=Axis1, y=Axis2)) + geom_point()
sp + stat_density_2d(aes(fill = ..level..), geom="polygon")+ scale_fill_gradient(low="blue", high="red")
Carte de densité
Nécessite la librairie ggplot2