Re: Problème graphique

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

  • Next message: raphaelle pin: "répartition spatiale d'objets"

    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 : Thu Mar 03 2005 - 07:24:43 MET