Re: Problème graphique

From: Daniel Chessel (chessel@biomserv.univ-lyon1.fr)
Date: Thu Mar 03 2005 - 07:22:29 MET


Stephane.Lamasse@univ-paris1.fr a écrit :
> Comment est-il possible avec plot.ts ou plot d'afficher sur de longues séries
> chronologique, toutes les années ou seulement une ou deux ou celles qui nous
> semblent importantes. Si je dois, par exemple, réaliser une courbe de
> l'évolution de la mortalité entre 1940 et 2005 en France, comment avoir chaque
> année ?

Les échelles indiquées sur les axes sont entièrement accessibles à
l'utilisateur dans R. Le défaut est évidemment le plus utilisé.

Supposons qu'on ait un chronique de 1940 à 2005, soit 66 valeurs.

w=1:66+rnorm(66,sd=8)
plot(w)
Les axes sont légendés par des valeurs calculés par la fonction pretty.

pretty(1:66)
[1] 0 10 20 30 40 50 60 70

pretty(w)
[1] -10 0 10 20 30 40 50 60 70
En fait comme -10 et 70 sont à l'extérieur les bâtons seront à 0,10 ,
..., 60.

On peut changer ceci à sa guise en faisant un plot sans axes, mais seul
le tracé manque, tout est calculé quand même.

plot(w,axes=F)
box()

Les axes sont à tracer soi même par la fonction axis.
axis(2,seq(-10,80,by=5))
ajoute l'axe des y (côté 2) aux valeurs indiquées.
On peut rajouter (c'est très utile)
abline(h=seq(-10,80,by=5),col=grey(0.7))
pour avoir un papier quadrillé en y.

Pour x, vous devez connaître les bornes de variations. Il suffit de
faire :

par("usr")
[1] -1.600000 68.600000 -7.423292 67.848444

ça vous donne les coordonnées exactes des bornes de la figure. Avec ça
vous faites ce que bon vous semble.

axis(1,seq(1,66,by=3),seq(1940,2005,by=3))
ajoute un taquet tous les trois ans et ne marque qu'une légende sur 2.
On peut mettre les axes au dessus (3) et à droite (4).
Qu'est ce que c'est sympathique.

plot(w,ax=F)
box()
axis(1,seq(1,66,by=3),seq(1940,2005,by=3),lwd=2,col="red")
abline(v=1:66,col=grey(0.8))
axis(2)
pour avoir chaque année indiquée.

Pour contrôler le nombre de lignes entre l'axe et les étiquettes,
utiliser le paramètre mgp
par(mfrow=c(2,2))
plot(w,ax=F);box();axis(1,mgp=c(3,0,0))
plot(w,ax=F);box();axis(1,mgp=c(3,1,0))
plot(w,ax=F);box();axis(1,mgp=c(3,2,0))
plot(w,ax=F);box();axis(1,mgp=c(3,3,0))

Pour contrôler la position et la longueur des bâtons,
utiliser le paramètre tck
par(mfrow=c(2,2))
plot(w,ax=F);box();axis(1,tck=NA)
plot(w,ax=F);box();axis(1,tck=-0.1)
plot(w,ax=F);box();axis(1,tck=0)
plot(w,ax=F);box();axis(1,tck=0.1)

Pour contrôler la taille des caractères
utiliser le paramètre cex.axis
par(mfrow=c(2,2))
plot(w,ax=F);box();axis(1,cex.axis=0.5)
plot(w,ax=F);box();axis(1,cex.axis=1)
plot(w,ax=F);box();axis(1,cex.axis=1.5)
plot(w,ax=F);box();axis(1,cex.axis=2)

Pour avoir les labels verticaux,
utiliser le paramètre las
plot(w,ax=F)
box()
axis(1,seq(1,68,by=3),seq(1940,2007,by=3),lwd=2,col="red",las=2)
abline(v=1:66,col=grey(0.8))

Pour avoir la liste des noms de paramètres (il y en a 73)
names(par())
pour avoir leur définition
help(par)
pour avoir leur valeur par défaut
par("mfrow")
la fonction axis admet des valeurs pour ces paramètres mais n'en change
pas la valeur par défaut après exécution.

Voilà de quoi satisfaire les plus exigeants !



This archive was generated by hypermail 2b30 : Tue Oct 18 2005 - 10:35:39 MEST