R vous permet de sauvegarder directement vos graphique en pdf. Vous pouvez ainsi choisir les dimensions du fichier et obtenir la qualité voulue. Pour cela il suffit d’utiliser la fonction pdf. Les nombreux arguments de la fonction permettent de choisir de nombreux paramètres: ?pdf.Un exemple: setwd(« D:/R/image ») #on choisit le répertoire#pour l’exemple on trace la croissance radiale d’une plante host<-function(t){5/(1+1000*exp(-1.18*t^0.4))}time<-c(0:200)# on utilise la fonction pdf avant le graphiquepdf(« croissance_plante.pdf », height=10,width=10) #les tailles sont à 7 par défaut#on trace le graphiquepar(mar=c(4, 6, 2, 1),cex.lab=1.3,cex.axis=1.2)plot(host(time)~time,type=’l’,lwd=4.5,col= »grey »,ylab= »Plant radius (cm) »,    xlab= » »,ylim=c(0,5))abline(h=1.1,col=’gray10′,lty=3)abline(v=50,col=’gray10′,lty=3)abline(h=3.15,col=’grey’,lty=3)abline(v=100,col=’grey’,lty=3)arrows(100,1.1,100,3.15,col=’red’,lwd=4,code=3)arrows(50,1.1,100,1.1,col=’black’,lwd=4,code=3) #on ferme le graphiquedev.off()#le pdf se situe dans votre répertoire Notez qu’il est possible de sauver vos graphique sous de nombreuxRead More →

R vous permet d’ajouter du texte à vos graphique en utilisant la fonction text. Il vous suffit de fournir les coordonnées du point où le texte doit être affiché. Si vous n’en avez aucune idée n’hésitez pas à utiliser la fonction locator() pour vous repérer.Un exemple: host<-function(t){5/(1+1000*exp(-1.18*t^0.4))}time<-c(0:200)par(mar=c(4, 6, 2, 1),cex.lab=1.3,cex.axis=1.2)plot(host(time)~time,type=’l’,lwd=4.5,col= »grey »,ylab= »Plant radius (cm) »,    xlab= » »,ylim=c(0,5))abline(h=1.1,col=’gray10′,lty=3)abline(v=50,col=’gray10′,lty=3)abline(h=3.15,col=’grey’,lty=3)abline(v=100,col=’grey’,lty=3)arrows(100,1.1,100,3.15,col=’red’,lwd=4,code=3)arrows(50,1.1,100,1.1,col=’black’,lwd=4,code=3)# on ajoute du texte en face des flèches en choisissant la couleur et la taille avec col et cextext(150,2.2, » croissance radiale »,col=’red’,cex=1.5)text(75,0.5, »dt »,cex=1.5)Read More →

Pour ajouter des cercles à un graphiques (ou simplement tracer des cercles) vous pouvez utiliser la fonction symbols qui permet d’ailleurs de tracer également des carrés, rectangles, étoiles etc…Un petit exemple pour les cercles: # coordonnées du centre des cerclesax<-c(20,20,20,80,80,80)by<-c(80,20,20,80,20,20)#tailles<-c(1,1,2,1,1,2)#couleurcouleur<-c(« black », »black », »grey », »blue », »green », »grey »)#on trace les cercles sur un graphiquesymbols(ax,by,circles=s,inches=1,fg=couleur,xlim=c(0,100),ylim=c(0,100),lwd=2.5) #pour le fun on ajoute un carré en rouge symbols(50,50,squares=10,inches=1,fg= »red »,add=TRUE,lwd=2.5)Read More →

Il peut être utile d’ajouter des flèches à vos graphiques R. La fonction arrows est là pour vous! Comme toujours commencez par regarder les arguments de la fonction : ?arrowsLes 4 premiers aruguments correspondent aux coordonnées (vecteurs de coordonnées pour plusieurs flèches) de début et de fin de la flèche. N’hesitez pas à utiliser la fonction locator() pour vous aider à trouver ces coordonnées. Ensuite vous pouvez choisir où se trouve le bout de la flèche avec l’arguement code. Enfin comme pour les courbes vous pouvez modifier l’épaisseur, la couleur et le type de trait avec lwd,col et lty. Voici un exemple #coordonnées des flechesRead More →

La palette correspond à l’ensemble des couleurs actives. Vous pouvez l’afficher et la modifier avec la fonction palette() palette() Il existe de nombreuses palettes prédéfinies : hsv(), gray(), rainbow(), heat.colors(), terrain.colors(), topo.colors(), cm.colors().Vous pouvez ainsi modifier la palette : palette(gray(1:10/10))palette() Enfin il existe des librairies comme RColorBrewer qui permettent d’utiliser différentes palettes adaptées à divers graphiques.Read More →

La manière la plus simple d’ajuster une fonction à des données est la méthode « géométrique » des moindres carrés (minimiser la somme des carrés des écarts correspond à maximiser la vraisemblance avec une loi normale). La fonction nls de R permet de réaliser ceci de manière simple. Voyons deux exemples : #exemple modèle de croissance exponentiel #on crée une fonction qui correspond à un modèle de Malthus malthus<-function(t,N0,r){N0*exp(r*t)} t<-seq(0:100) NO<-2 r<-0.05 plot(malthus(t,NO,r)~t,type=’l’,col=’green’,lwd=2) #on crée des données en ajoutant du bruit sim<-malthus(t,NO,r)+rnorm(t,sd=0.3*malthus(t,NO,r)) plot(sim~t,pch=20) #on ajuste la fonction sur les données simulées en utilisant les moindres carrés fitmalthus<-nls(sim~malthus(t,a,b),start=list(a=1,b=0.01)) fitmalthus summary(fitmalthus) #on vérifie plot(sim~t,pch=20) lines(malthus(t,NO,r)~t,type=’l’,col=’green’,lwd=2) lines(malthus(t,coef(fitmalthus)[1],coef(fitmalthus)[2])~t,type=’l’,col=’red’,lwd=2) #exemple 2 avecRead More →

Le critère d’Akaike (AIC) est un critère utilisé pour la sélection de modèles. Ce critère représente un compromis entre le biais diminuant avec le nombre de paramètres libres et la parcimonie, volonté de décrire les données avec le plus petit nombre de paramètres possible. Il se calcule de la façon suivante -2log-likelihood + knpar. Par défaut on a souvent k=2. Le meilleur modèle est celui qui possède l’AIC le plus faible. On obtient ce critère en utilisant la fonction AIC(objet,k=?), k=2 par défaut. Prenons un exemple library(MASS) #pour la fonction fitdistr #  z est un vecteur contenant les données, on essaie de modéliser ces données parRead More →

Il existe plusieurs façons de représenter des surfaces en 3D. Je vous en propose une qui utilise la fonction de base persp(). #on construit les fonctions à représenter f1 et f2 f1<-function(x,y){    15*sin(sqrt(x^2+y^2))}################mu1<-0 mu2<-0 s11<-15 s12<-20 s22<-10 rho<-0.5 f2<-function(x,y){term1<-1/(2*pi*sqrt(s11*s22*(1-rho^2)))term2<–1/(2*(1-rho^2))term3<-(x-mu1)^2/s11term4<-(y-mu2)^2/s22term5<–2*rho*((x-mu1)*(y-mu2))/(sqrt(s11)*sqrt(s22))term1*exp(term2*(term3+term4-term5))}# on définit deux vecteurs correspondant aux axes x et yx<-seq(-15,15,length=50)y<-x# on calcule la valeur de z=f(x,y) pour tous les couples x[i],y[i] avec la fonction outerz1<-outer(x,y,f1)z2<-outer(x,y,f2)#on utilise la fonction perspx11()persp(x,y,z1,theta=30,phi=40,expand=0.5,col= »lightblue »,ticktype= »detailed »)x11()persp(x,y,z2,theta=40,phi=30,expand=0.5,col= »lightgreen »,ticktype= »detailed ») Il est possible d’ajouter des points au graphique en utilisant points(trans3d()).Regardez bien tous les arguments de la fonction persp() : ?persp. Ils sont nombreux et vous permettront d’obtenir votre surface sous l’angle que vous voulez. Enfin ilRead More →

R permet de faire beaucoup de chose avec les graphiques mais il faut coder ce qu’on veut faire. Nous allons voir ici comment ajouter des courbes, des points et des droites sur un plot. #on crée des données pour l’exemple x<-seq(0:100)a<-2b<-5y1<-a*x+by2<-a*x^0.5+by3<-a*x^0.3+b*xynoisy1<-y1+rnorm(length(y1),sd=0.2*y1)ynoisy2<-y2+rnorm(length(y2),sd=0.2*y2)ynoisy3<-y3+rnorm(length(y3),sd=0.2*y3)#étape 1 on trace la fonction y1 avec un plotplot(y1~x,type=’l’,col= »green »,lwd=2,ylim=c(0,300))#étape 2 on veut ajouter les fonctions y2 et y3 sur le même graphiques : on utilise lineslines(y2~x,type=’l’,col= »blue »,lwd=2)lines(y3~x,type=’l’,col= »purple »,lwd=2)#étape 3 on veut ajouter les nuages de point ynoisy1 2 et 3 sur le graphique: on utilise pointspoints(ynoisy1~x,pch=20,col= »grey »)points(ynoisy2~x,pch=20,col= »black »)points(ynoisy3~x,pch=22,col= »black »)#étape 4 on veut ajouter une droite verticale pour x=50 : on utilise abline(v=) v pour vertical abline(v=50,col= »red »)#étape 5 on veutRead More →