Re: Une question sur les étiquettes dans les graphiques

From: Stephane DRAY (dray@biomserv.univ-lyon1.fr)
Date: Mon Nov 08 2004 - 17:55:35 MET

  • Next message: Daniel Chessel: "Re: Une question sur les étiquettes dans les graphiques"

    Pour continuer sur les graphiques,
    Il est clair que les plot (coinertia...) procurent un resume de ce qui est
    disponible, mais le probleme c'est qu'a moins d'avoir un tres grand ecran,
    c'est rarement lisible. Je me retrouve souvent, a renomer mon objet x, et a
    executer, les graphiques 1 par 1.
    Je me demande si on pourrait pas soit inclure un parametre, soit utlise le
    par()$ask pour permettre de faire les graphiques un par un au lieu de tous
    les avoir sur un layout.
    Un exemple avec la coinertie:

    data(doubs)
    dudi1 <- dudi.pca(doubs$mil, scale = TRUE, scan = FALSE, nf = 3)
    dudi2 <- dudi.pca(doubs$poi, scale = FALSE, scan = FALSE, nf = 2)
    coin1 <- coinertia(dudi1,dudi2, scan = FALSE, nf = 2)
    plot(coin1)

    plot2.coinertia=function (x, xax = 1, yax = 2, ...)
    {
         if (!inherits(x, "coinertia"))
             stop("Use only with 'coinertia' objects")
         if (x$nf == 1) {
             warnings("One axis only : not yet implemented")
             return(invisible())
         }
         if (xax > x$nf)
             stop("Non convenient xax")
         if (yax > x$nf)
             stop("Non convenient yax")
         def.par <- par(no.readonly = TRUE)
         on.exit(par(def.par))
        if(!par()$ask) nf <- layout(matrix(c(1, 2, 3, 4, 4, 5, 4, 4, 6), 3, 3),
             respect = TRUE)
         par(mar = c(0.1, 0.1, 0.1, 0.1))
         s.corcircle(x$aX, xax, yax, sub = "X axes", csub = 2, clab = 1.25)
         s.corcircle(x$aY, xax, yax, sub = "Y axes", csub = 2, clab = 1.25)
         scatterutil.eigen(x$eig, wsel = c(xax, yax))
         s.match(x$mX, x$mY, xax, yax, clab = 1.5)
         s.arrow(x$l1, xax = xax, yax = yax, sub = "Y Canonical weights",
             csub = 2, clab = 1.25)
         s.arrow(x$c1, xax = xax, yax = yax, sub = "X Canonical weights",
             csub = 2, clab = 1.25)
    }

    plot2.coinertia(coin1)
    par(ask=T)
    plot2.coinertia(coin1)

    PS: j'ai pas la derniere version d'ade

    Votre avis ?

    A+

    >Les fonctions génériques
    > scatter (acm, coa, pca, pco, fca)
    > plot (corkdist, discrimin, dpcoa", foucart, krandtest, mcoa, mfa,
    > pcaiv, procuste, pta, rlq, sepan, statis, within)
    > kplot (foucart, mcoa, mfa, pta, sepan, sepan.coa, statis)
    >qui contiennent des cartes factorielles ne peuvent être satisfaisantes
    >directement : il y a trop de conditions numériques possibles pour qu'un
    >même graphe puisse satisfaire tous les possibles. Elle sont écrites
    >surtout pour donner des indications sur où se trouve l'info utile. Ceci
    >permet à l'utilisateur de retrouver rapidement comment est faite une
    >partie de la figure qui l'intéresse lui et sera reparamétrée à son goût.
    >Par exemple scatter.pco :
    >
    >function (x, xax = 1, yax = 2, clab.row = 1, posieig = "top",
    > sub = NULL, csub = 2, ...)
    >{
    > if (!inherits(x, "pco")) stop("Object of class 'pco' expected")
    > opar <- par(mar = par("mar"))
    > on.exit(par(opar))
    > coolig <- x$li[, c(xax, yax)]
    > s.label(coolig, clab = clab.row)
    > add.scatter.eig(x$eig, x$nf, xax, yax, posi = posieig, ratio = 1/4)
    >}

    Stéphane DRAY
    --------------------------------------------------------------------------------------------------

    Département des Sciences Biologiques
    Université de Montréal, C.P. 6128, succursale centre-ville
    Montréal, Québec H3C 3J7, Canada

    Tel : (514) 343-6111 poste 1233 Fax : (514) 343-2293
    E-mail : stephane.dray@umontreal.ca
    --------------------------------------------------------------------------------------------------

    Web http://www.steph280.freesurf.fr/
    --------------------------------------------------------------------------------------------------



    This archive was generated by hypermail 2b30 : Mon Nov 08 2004 - 17:57:29 MET