210 likes | 322 Views
Le langage . une introduction pragmatique . Les graphiques . UMR 7619 Sisyphe 17-19 Avril 2012. Alexandre Pryet. Graphiques : les bases . plot ( clim$date,clim$Temp, type ="l", xlab = "Date", ylab ="Temp. [°C]", main = "Suivi de la température à Santa Cruz" ).
E N D
Le langage une introduction pragmatique Les graphiques UMR 7619 Sisyphe 17-19 Avril 2012 Alexandre Pryet
Graphiques : les bases plot(clim$date,clim$Temp, type="l", xlab= "Date", ylab="Temp. [°C]", main= "Suivi de la température à Santa Cruz") Note : l'ordre des paramètres n'a pas d'importance, mais il faut rester logique !
Graphiques : type «p » comme point plot(clim$date,clim$Temp, type="p", col="red", xlab=" ", ylab="Temp. [°C]",pch='+') Note : profitez des valeurs par défaut, inutile d'écrire type="p" ;-)
Graphiques : type « l » comme ligne plot(clim$date,clim$Temp, type="h", xlab= "Date", ylab="Temp. [°C]", main= "Suivi de la température à Santa Cruz")
Graphiques : type « h » comme histogramme plot(clim$date,clim$Temp, type="l", xlab= "Date", ylab="Temp. [°C]", main= "Suivi de la température à Santa Cruz")
Graphiques : les axes plot(clim$date,clim$Temp, type="l",xlim=daterange, ylim=c(10,20), xaxt="n", xaxs ="i", yaxs="i") axis.POSIXct(1,daterange) Les axes peuvent être dessinées après la fonction plot avec des fonctions spécifiques : Fonction standard : axis(1,….) Fonction spécifique aux dates : axis.POSIXct(1,daterange) 3 2 4 1
Graphique : excercice 1.a Réaliser le graphique ci-dessous à partir de la table clim
Graphique : excercice 1.a Réaliser le graphique ci-dessous à partir de la table clim, représenter la radiation solaire du lundi 1 au vendredi 5 août 2011 Fonctions utiles : as.POSIXct(), plot(), axis.POSIXct() Note : La langue peut-être modifiée avec la fonction Sys.setlocale()
Graphique : les graphiques multiples, même axe des ordonnées La fonction plot() ouvre une fenêtre et permet de dessiner les bases du graphique. Les axes peuvent ensuite être modifiés avec la fonction axis(), et de nouveaux tracés peuvent être réalisés avec les fonctions lines() et points() plot(diver$date,diver$air_temp,type="l",…) lines(diver$date,diver$water_temp,…)
Graphique : excercice 1.a Réaliser le graphique ci-dessous à partir de la table diver
Graphique : les graphiques multiples, axe des ordonnées différents Des séries de données partagent souvent le le même axe des ordonnées, mais l'axe des abscisse est différent. On utilise alors la fonction par(new=T) plot(diver$date,diver$air_temp,type="l",…) par(new=T) plot(diver$date,diver$air_pressure,type="l",xaxt="n",yaxt="n",xlab="",ylab="",…) axis(4) mtext(4, text = 'Pressure [hPa]', line = 2.5)
Graphique : excercice 2.b Réaliser le graphique ci-dessous à partir de la table diver
Graphiques : les légendes nom des éléments position: bottom/top right/left legend('bottomright', c('courbe 1', 'courbe 2'), cex=1.1, col=c('blue','red'),lty=c(1,3), lwd=2, bty="n") Note : plus de détails dans ?legend
Graphique : gestion des marges Marges de la figure : mar=c(mar1, mar2, mar3, mar4) 3 2 4 Marges externes (outer margins) omar=c(mar1, mar2, mar3, mar4) 1
Graphique : graphiques multiples colonnes lignes par( mfrow=c(2,2) ) colonnes lignes par( mfrow=c(3,2) )
Exercice 3 Réaliser le graphique ci-dessous à partir de la table clim fonctions utiles : par(mfrow=c(2,2),…)
Export de pdf / png /… La fonction plot() ouvre de manière automatique une fenêtre de visualisation. Elle peut-être enregistré vers un fichier pdf avec la fonction dev.pdf(): dev.print(pdf,"mon_graph.pdf") Pour obtenir un rendu optimal des graphiques dans vos rapports et publications, mieux vaut utiliser les fonctions pdf() et png(), qui ne dépendent pas de la taille de la fenêtre graphique de l'écran : pdf("mon_graph.pdf", width=8) par(mar=c(4,4,3,2),mfrow=c(2,2)) plot(x1,y1) … plot(x4,y4) dev.off()
Graphique : graphique log-log • Importer les données depuis le fichier pumping_test.csv • Faire les raccourcis suivants : • x<-pumping_test$t # temps • y<-pumping_test$s # rabattement • Faire un graphique log-log avec la fonction : • plot(x,y, …, log='xy', xlog=TRUE, ylog=TRUE, …) • Note : ne pas tracer les axes, mais choisir des légendes appropriées. • Construction des axes et de la grille : • Déterminer l'intervalle de x et y en arrondissant à la puissance de 10 près. Pour ce faire, utiliser la fonction floor() • Pour x puis y, générer la séquence des puissances de 10 des intervalles respectifs. Ex : Si l'intervalle est [10-5 ; 10-2], cela donne: -5, -4, -3, -2 • Générer ensuite les la suite 1. 10-5, 2. 10-5, …, 9. 10-4,1.10-2 • Utiliser ces résultats pour les axes : axis(1,at=…) et axis(2,at=…) • Réaliser un grille avec abline(h=…, lty=3) ; abline(h=…, lty=3) • Généraliser, faire un fonction pour éviter de refaire tout ça !
Bonus : annotation dans les axes : math et lettres grecques # Données bidons t<-1:10 v<-rnorm(10) # Graphique demo plot(t,v,type="l",main="Speed of a mollusk on sea shore", xlab=bquote(paste('time ',tau,' [hours]')), ylab=bquote(paste( 'Vitesse V [', m, '.', s^-1, ']' )) )