IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Type d'échelle pour tracer un plot


Sujet :

R

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 45
    Points : 35
    Points
    35
    Par défaut Type d'échelle pour tracer un plot
    Bonjour,

    Bon mon problème est assez précis et je ne suis pas sûre qu'il existe une réponse... Je cherche la possibilité de tracer un plot avec une échelle dite "biexponentielle" c'est-à-dire qui mêle échelle linéaire classique et échelle logarithmique.

    -> voir http://probes.invitrogen.com/resourc...is/player.html -- slide numéro 6

    Pensez-vous que cela soit possible ?

  2. #2
    Membre habitué
    Inscrit en
    Mai 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 74
    Points : 164
    Points
    164
    Par défaut
    Salut

    Bon mon problème est assez précis et je ne suis pas sûre qu'il existe une réponse
    Je te trouve assez pescimiste pour une utilisatrice de R.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    library(fortunes) # si tu l'as pas install.packages("fortunes")
    fortune("yoda")
     
    Evelyn Hall: I would like to know how (if) I can extract some of
    the information from the summary of my nlme.
    Simon Blomberg: This is R. There is no if. Only how.
       -- Evelyn Hall and Simon 'Yoda' Blomberg
          R-help (April 2005)
    Pour revenir à ton problème, en suivant le liens que t'a envoyé il s'agit de cytometrie...y'a un package qui permet de faire à peu près tous ces types de graphiques, y compris tes scatteplot biexponentielle. Il s'agit du package iFlow de bioconductor

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    source("http://www.bioconductor.org/biocLite.R")
    biocLite("iFlow")
    N'oublie les dépendance RGtk2, flowCore, flowViz, flowStats. Et lis bien la doc, normalement tu devrais t'en sortir.
    Je ne suis pas du tout de ce domaine, j'utilise R pour autre chose donc mon aide s'arrête la.
    Néanmoins je pense qu'avec ggplot2, il est possible de modifier les echelles avec l'option coord_trans mais je ne sais pas jusqu'a quel niveau...je vais faire quelques recherches, mais bon j'espere que le package iFlow fera ton bonheur vu qu'il est dédiée à la visualisation graphique en cytometrie de flux

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 45
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par dickoa Voir le message
    Je te trouve assez pescimiste pour une utilisatrice de R.
    A vrai dire je suis une novice, mais d'une façon façon générale je trouve que ce n'est pas évident de trouver des infos sur R (on a vu plus efficace comme mot-clé sur google), et les sites de recherche de fonctions R ne m'ont pas paru fulgurants...

    En tout cas merci pour l'info, je vais chercher du côté de iFlow. J'utilise déjà flowCore, flowViz et flowClust, mais je n'avais pas entendu parler de celui-là. Je reviendrai ici donner des nouvelles :-)

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 45
    Points : 35
    Points
    35
    Par défaut
    Bon, visiblement iFlow fournit en fait une interface graphique qui implémente les packages de base pour la cytométrie : flowCore, flowViz...

    Il permet entre autres d'appliquer des transformations sur les données (log, arcsinh, biexp et les autres). Moi ce que je cherche ce serait plutôt un moyen de changer l'affichage des données, sans les transformer.

    J'arrive à afficher mes données en échelle log avec le paramètre log="xy", mais j'ai des artéfacts dans l'affichage. Donc peut être effectivement la seule solution est de transformer les données... A tester. Mais je ne sais pas si c'est une bonne idée d'ajouter une seconde transformation à mes données (elle subissent déjà un Box-Cox).

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 45
    Points : 35
    Points
    35
    Par défaut
    Bon, mon problème reste le même : problème d'affichage des données en échelle log ou biexp, pour de faibles valeurs. Voir pièce jointe SVP...
    Images attachées Images attachées  

  6. #6
    Membre expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Points : 3 378
    Points
    3 378
    Par défaut
    Bonjour,

    La représentation dans une échelle autre que "l'échelle normale", ce n'est finalement rien d'autre qu'une représentation des données transformées, avec des axes qui affichent des valeurs dans l'échelle naturelle (et éventuellement à intervalle irrégulier).

    Tu devrais donc pouvoir :
    1. faire un plot avec tes données transformées en utilisant les options xaxt="n" et yaxt="n" (suppression des axes).
    2. créer des axes à ta convenance à l'aide de la fonction axis
      Si tu souhaites programmer une création d'axes automatique (en fonction de la transformation et des plages de valeurs) et qui ressemble à ce qu'il y a dans le premier lien que tu as donné, c'est cette partie qui va être la plus délicate.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 45
    Points : 35
    Points
    35
    Par défaut
    En fait ce qui me gêne ce sont les "bandes blanches" qui apparaissent lorsque je transforme les données, et que je n'arrive pas à expliquer. En échelle log ces bandes blanches apparaissent pour des valeurs < 100, donc je pensais régler ce problème en adoptant, comme dans certains exemples que j'ai vus, une échelle linéaire entre 0 et 100, et logarithmique entre 100 et 100000...

    Donc en fait c'est au niveau des données que ça se passe, plus qu'au niveau des axes. Une idée de ce qui pourrait causer ces bandes blanches ?

  8. #8
    Membre expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Points : 3 378
    Points
    3 378
    Par défaut
    Citation Envoyé par Marciane Voir le message
    Donc en fait c'est au niveau des données que ça se passe, plus qu'au niveau des axes. Une idée de ce qui pourrait causer ces bandes blanches ?
    Quel est le pas de ta mesure ?

    L'échelle logarithmique va faire ressortir les discontinuités dans les petites valeurs si ta donnée n'est pas techniquement (ou par définition) un réel.
    Pour t'en convaincre, un petit exemple sur les entiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    x <- round(abs(rnorm(100000, 0, 1000)))
    plot(x, rnorm(length(x)), log="x")
    Edit: Pareil si ta mesure à une précision de 0,1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x <- round(abs(rnorm(100000, 0, 1000))) / 10

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 45
    Points : 35
    Points
    35
    Par défaut
    Bon et bien en définitive le problème vient de mes données tronquées... Apparemment le vieux cytomètre qui a servi à l'acquisition des données ne doit pas être plus précis que deux décimales. Donc aucun moyen de faire des graphes normaux, j'en ai peur

    Je garde quand même sous le coude la fonction "axis" qui devrait me servir. Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [plot] Problème pour tracer un graphe
    Par samo25 dans le forum MATLAB
    Réponses: 0
    Dernier message: 15/02/2012, 14h28
  2. [Protocole TCP] Utilitaire pour Tracer une session
    Par =JBO= dans le forum Développement
    Réponses: 3
    Dernier message: 04/06/2005, 19h28
  3. [type de retour pour un update]
    Par viny dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 21/03/2005, 21h08
  4. Recherche de source pour tracer des codes barres
    Par Tardiff Jean-François dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/10/2004, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo