Autres types de graphiques y = f(x) 

plot 3D, heatmap, carte de densité, données temporelles...

en langage R

L'essentiel de cette page !

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 :

1. Graphique exprimé en fonction de données temporelles (calendaires)

2. Gestion des axes irréguliers (cassures dans l'axe, échelle logarithmique)

plot3d obtenu avec la librairie rgl sous R CRAN (gif animé)

5. Nuages de points en carte de densité (density map) pour traduire la densité des points : kernel density 2D kde2D

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

6- Lissage pour ajouter une 3ème dimension type heatmap - 

 Carte de température, heatmap, pour qu'un graphique de type y = f(x) est une troisième dimension codée par la couleur

# 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")

Dot distribution map - Density map - Carte de densité - R project ggplot2 CRAN