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 :

graphique et relier les points


Sujet :

R

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut graphique et relier les points
    Bonjour, je ne suis pas expert en R, j'ai deux jeux de donnees , je voudrais creer deux histogrammes cote a cote sans les superposer, par la suite je veux relier les points des max de chaque histogramme pour chaque colonne.

    Je suis bloque, a la partie de mettre deux histogrammes dans la meme fenetre, et relier les points des max:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    > c = read.table("Cv2")
    > c[c>1000] = 1000
    > png("Cv2.png",height=600,width=800)
    > hist(c[c!=0],nclass = 20,xlab="Intron size", main="Intron size
    distribution for Cv2", col="grey")
    > dev.off()
     
    > a = read.table("Aster")
    > a[a>1000] = 1000
    > png("Aster.png",height=600,width=800)
    > hist(a[a!=0],nclass = 20,xlab="Intron size", main="Intron size
    distribution for Aster", col="grey")
    > dev.off()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
     
    0
    94
    76
    81
    106
    99
    395
    454
    352
    451
    243
    254
    273
    366
    266
    605
    550
    303
    297
    1
    312
    275
    313
    212
    203
    241
    665
    354
    506
    314
    260
    0
    312
    246
    185
    298
    217
    255
    355
    279
    345
    249
    442
    214
    389
    392
    334
    393
    205
    669
    219
    406
    0
    469
    433
    558
    526
    217
    203
    330
    262
    196
    722
    494
    357
    393
    185
    233
    118
    196
    304
    532
    382
    233
    203
    229
    319
    585
    647
    332
    303
    326
    175
    110
    122
    86
    135
    238
    109
    0
    710
    286
    241
    302
    280
    569
    477
    157
    219
    267
    118
    243
    283
    Je mets des bouts de mes deux fichiers merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
     
     
    0
    353
    309
    101
    176
    237
    329
    462
    338
    380
    518
    304
    393
    308
    454
    342
    0
    437
    157
    205
    191
    237
    206
    204
    249
    169
    303
    267
    250
    252
    297
    247
    236
    151
    131
    165
    0
    535
    203
    197
    226
    107
    199
    209
    291
    186
    106
    139
    0
    80
    398
    133
    90
    123
    178
    182
    177
    213
    102
    79
    0
    151
    141
    77
    95
    113
    107
    128
    178
    144
    124
    158
    105
    113
    158
    125
    137
    446
    0
    264
    176
    299
    482
    313
    422
    344
    309
    283
    407
    209
    273
    172
    149
    185
    96
    94
    0
    229
    232
    226
    188
    252
    185
    245
    282
    322
    257
    206
    0
    448
    438
    361
    630
    612
    277
    327
    344
    296
    567
    232

  2. #2
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,

    Pour afficher deux graphiques dans une même fenêtre, il faut avoir recours à la commande : qui donne une répartition des graphes sur i lignes et j colonnes.

    Pour votre cas, cela donnerait par exemple quelquechose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    png("Monpng.png",height=600,width=800)
     
    par(mfrow=c(1,2))
     
    hist(c[c!=0],nclass = 20,xlab="Intron size", main="Intron size distribution for Cv2", col="grey")
    hist(a[a!=0],nclass = 20,xlab="Intron size", main="Intron size distribution for Aster", col="grey")
     
    dev.off()

    Ensuite, pour ce qui est de "relier les points des max", je ne suis pas sûre de bien comprendre ce que vous cherchez à faire : relier les points max de chacun des "bâtons" de l'histogramme?

    Bonne continuation


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  3. #3
    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 : 44
    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,

    Si j'ai bien compris la question, il s'agit de faire une ligne entre deux graphiques (?).
    Dans ce cas, il faut faire un peu de gymnastique en faisant des aller-retours entre différents systèmes de coordonnées. Voici un petit exemple qui montre comment s'y prendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    par(mfrow=c(1, 2))
    
    ##################################################
    ## Premier histogramme :
    bp1 <- hist(rnorm(100))
    
    ## Calcul des coordonnées du premier point max
    ## dans le système naturel ("user") :
    y1 <- max(bp1$count)
    x1 <- mean(bp1$breaks[(0:1) + which.max(bp1$count)])
    
    ## abline(v=x1, col="red")                 # Pour vérification du bon calcul de x.
    
    ## Conversion en coordonnées standardisées pour
    ## la région intérieure (aux marges externes) :
    y1nic <- grconvertY(y1, "user", "nic")
    x1nic <- grconvertX(x1, "user", "nic")
    
    ##################################################
    ## Second histogramme :
    bp2 <- hist(rnorm(100), ylim=c(0, 50))
    
    ## Calcul des coordonnées du second point max
    ## dans le système naturel ("user") :
    y2 <- max(bp2$count)
    x2 <- mean(bp2$breaks[(0:1) + which.max(bp2$count)])
    
    ## Conversion des coordonnées standardisées du premier point
    ## vers le nouveau système de coordonnées "user" :
    y1user <- grconvertY(y1nic, "nic", "user")
    x1user <- grconvertX(x1nic, "nic", "user")
    
    ## On trace la ligne :
    lines(c(x1user, x2), c(y1user, y2),
          xpd=NA,                           # Pour pouvoir tracer en dehors de la zone graphique.
          col="red")
    Forum LaTeX : pour des réponses rapides et appropriées, pensez à poster un
    ECM = Exemple (reproduit le problème) Complet (document compilable) Minimal (ne postez pas votre thèse !)

    Une solution vous convient ? N'oubliez pas le tag


    )><))))°>

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Bonjour,
    en fait ce que j'obtiens de mon premier programme ce sont les deux images qui sont en pièces jointes.
    Ce que je voudrais c'est tracer dans la même fenêtre graphique les points qui passent sur les max de chaque bar avec deux couleurs différentes pour Cv et aster pour avoir un visuel de l'évolution des deux dans la même fenêtre.

    Merci

  5. #5
    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 : 44
    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
    Il faudrait être plus précis dans la description de ce que tu souhaites obtenir. Je ne comprends pas ce que veut dire
    Citation Envoyé par shadow19c Voir le message
    ...les points qui passent sur les max de chaque bar avec deux couleurs différentes...
    Est-ce la courbe qui se superpose à l'histogramme ? (Mais quel intérêt dans ce cas ?)

    Une petite image de démo construite à partir de tes deux exemples peut-être ? Ça pourrait nous aider...
    Forum LaTeX : pour des réponses rapides et appropriées, pensez à poster un
    ECM = Exemple (reproduit le problème) Complet (document compilable) Minimal (ne postez pas votre thèse !)

    Une solution vous convient ? N'oubliez pas le tag


    )><))))°>

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Bonjour, oui je mets en piece jointe une image que j'ai faite à la main.

    merci
    Images attachées Images attachées  

  7. #7
    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 : 44
    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
    Donc au final, tu ne veux pas les histogrammes mais justes les deux courbes de densité sur un même graphique, c'est bien ça ?
    Forum LaTeX : pour des réponses rapides et appropriées, pensez à poster un
    ECM = Exemple (reproduit le problème) Complet (document compilable) Minimal (ne postez pas votre thèse !)

    Une solution vous convient ? N'oubliez pas le tag


    )><))))°>

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Je pense que c'est le mieux, car au début je voulais faire comme l'image que je mets en pièce jointe, mais je ne sais pas si les deux seront visibles.

    Merci.
    Images attachées Images attachées  

  9. #9
    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 : 44
    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 shadow19c Voir le message
    ...mais je ne sais pas si les deux seront visibles.
    Je pense que c'est parfaitement possible à faire, mais ce n'est effectivement pas une question triviale.
    Je me penche dessus dès que je trouve un peu de temps.
    Forum LaTeX : pour des réponses rapides et appropriées, pensez à poster un
    ECM = Exemple (reproduit le problème) Complet (document compilable) Minimal (ne postez pas votre thèse !)

    Une solution vous convient ? N'oubliez pas le tag


    )><))))°>

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Ok merci, mais sinon si ça vous prend du temps je préfère la courbe de densité.

    Merci en tout cas.

  11. #11
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,

    Je dois avouer que moi aussi j'avais un peu de mal à comprendre ce que vous cherchiez à faire. Si j'ai bien compris cette fois , voici un exemple de ce qui est faisable (il faut peut-être encore ajuster certains paramêtres) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    x<-rnorm(100)
    y<-rnorm(100)-1
     
    hx<-hist(x)
    hy<-hist(y)
     
    v<-c(hx$breaks,hy$breaks)
    v<-v[order(v)]
     
    z<-c(hx$counts,hy$counts)
    z<-z[order(z)]
     
    hist(x,border="red",xlim=range(v),ylim=range(z))
    hist(y,border="blue",add=TRUE)
    Bonne continuation


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Bonjour, oui ca marche bien mais j'ai pas compris comment vous lisez le fichier au début, je pense que la courbe de densité est pas mal.

    Merci

  13. #13
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Citation Envoyé par shadow19c Voir le message
    mais j'ai pas compris comment vous lisez le fichier au début
    Dans l'exemple que j'ai donné, je ne lis aucun fichier, j'ai généré deux vecteurs aléatoires x et y pour me servir de données.
    Si vous souhaitez reprendre mon code avec vos données, il vous suffit de remplacer par exemple comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    x<-read.table("Cv2")
    y<-read.table("Aster")
    et éventuellement adapter le code à vos données.

    Bonne continuation


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  14. #14
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Sur le même principe que mon exemple précédent, pour obtenir les courbes de densité, on peut par exemple faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    x<-rnorm(100)
    y<-rnorm(100)-1
     
    dx<-density(x)
    dy<-density(y)
     
    v<-c(dx$x,dy$x)
     
    z<-c(dx$y,dy$y)
     
    plot(dx,xlim=range(v),ylim=range(z),type="l",col="red")
    lines(dy,col="blue")
    En espérant que cela réponde à votre question


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Bonjour,
    j'ai un petit soucis, j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    x<-read.table("Cv2")
    > y<-read.table("Aster")
    > dx<-density(x)
    Erreur dans density.default(x) : l'argument 'x' doit être numérique
    Je comprends pas l'erreur.

    Merci

  16. #16
    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 : 44
    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 shadow19c Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    x<-read.table("Cv2")
    > y<-read.table("Aster")
    > dx<-density(x)
    Erreur dans density.default(x) : l'argument 'x' doit être numérique
    Je comprends pas l'erreur.
    C'est que x n'est probablement pas un vecteur après obtention par .

    Citation Envoyé par A. D. Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    x<-rnorm(100)
    y<-rnorm(100)-1
     
    hx<-hist(x)
    hy<-hist(y)
     
    v<-c(hx$breaks,hy$breaks)
    v<-v[order(v)]
     
    z<-c(hx$counts,hy$counts)
    z<-z[order(z)]
     
    hist(x,border="red",xlim=range(v),ylim=range(z))
    hist(y,border="blue",add=TRUE)
    Oui, c'est l'idée pour les histogrammes, mais il reste un problème majeur : la sur-impression de classes plus abondantes qui cachent les anciennes.

    Le problème peut être contourné en utilisant des transparences (je le donne pour info si ça intéresse quelqu'un) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    x1 <- rnorm(300, 20, 6)
    x2 <- rnorm(300, 10, 5)
    
    ## Histogrammes non-imprimés :
    bp1 <- hist(x1, plot=FALSE, nclass=20)  # 20 classes...
    bp2 <- hist(x2, plot=FALSE, nclass=20)  #
    
    ## Calcul de minima/maxima :
    hlims <- range(c(bp1$breaks, bp2$breaks))
    vlims <- range(c(bp1$counts, bp2$counts))
    
    ## Couleurs de remplissage, dont une avec ajout de transparence :
    histcol <- sapply(apply(rbind(col2rgb(c("orangered2", "lightblue"))/255,
                                  alpha = c(1, 0.5)), # Première couleur opaque, 50% de transparence pour la seconde.
                            2, as.list),
                      do.call, what = rgb)
    
    ## Création du graphique :
    hist(x1, border="darkred", xlim=hlims, ylim=vlims,
         nclass=20,                         # 20 classes...
         col=histcol[1])
    
    hist(x2, border="darkblue", add=TRUE,
         breaks=seq(from=min(hlims), to=max(hlims), by=diff(bp1$breaks[1:2])), # ...largeur de classes égale à celle
                                                                               # du précédent graphique
         col=histcol[2])      # Couleur transparente (en sur-impression).
    Forum LaTeX : pour des réponses rapides et appropriées, pensez à poster un
    ECM = Exemple (reproduit le problème) Complet (document compilable) Minimal (ne postez pas votre thèse !)

    Une solution vous convient ? N'oubliez pas le tag


    )><))))°>

  17. #17
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Citation Envoyé par pitipoisson Voir le message
    Oui, c'est l'idée pour les histogrammes, mais il reste un problème majeur : la sur-impression de classes plus abondantes qui cachent les anciennes.
    Bien vu, je n'avais pas pensé à cela.
    Votre astuce est fort intéressante


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Bonjour, comment peut on modifier pour les valeurs car je ne comprends pas pourquoi ca ne marche pas pour cette fois ci.
    J'ai toujours un problème de valeurs numériques.


    Merci

  19. #19
    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 : 44
    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
    En reprenant ton premier exemple de fichier et en le chargeant comme tu l'indiques, j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    > class(x)
    [1] "data.frame"
    x n'est donc pas un vecteur.

    Mais tu sélectionnais les valeurs différentes de zéro et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    > class(x[x!=0])
    [1] "integer"
     
    > is.vector(x[x!=0])
    [1] TRUE
    C'est pour ça que la fonction hist fonctionnait. Mais ce qui se passe ici (changement de classe d'objet) est tellement implicite que je déconseille d'y avoir recours. D'autant que ce type d'indice pour une data.frame est pour le moins douteux (dans le sens "pas clair").

    Le mieux est d'explicitement ne conserver que la première et unique colonne de x comme un vecteur d'entiers :
    et ensuite faire comme A.D. l'a indiqué pour les densités ou bien utiliser la dernière solution "histogramme".
    Forum LaTeX : pour des réponses rapides et appropriées, pensez à poster un
    ECM = Exemple (reproduit le problème) Complet (document compilable) Minimal (ne postez pas votre thèse !)

    Une solution vous convient ? N'oubliez pas le tag


    )><))))°>

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Bonjour, j'ai essayé votre méthode mais j'ai un problème à la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
     > x=read.table("Cv2")
    >  y=read.table("Aster")
    > x[x>1000]=1000
    > y[y>1000]=1000
    > hist(x[x!=0],nclass = 20,xlab="Intron size", main="Intron size
    + + distribution for Cv2", col="grey")
    > hist(y[y!=0],border="blue",add=TRUE)
    > x=read.table("Cv2")
    >  y=read.table("Aster")
    > x[x>1000]=1000
    >  y=read.table("Aster")
    > x[x>1000]=1000
    > y[y>1000]=1000
    > hist(x[x!=0],nclass = 20,xlab="Intron size", main="Intron size
    + + distribution for Cv2", col="grey")
    > hist(y[y!=0],col="blue",add=TRUE)
    > x=read.table("Cv2")
    >  y=read.table("Aster")
    > x[x>1000]=1000
    > y[y>1000]=1000
    > bp1=hist(x[x!=0],plot=FALSE,nclass=20)
    > bp2=hist(y[y!=0],plot=FALSE,nclass=20)
    > hlims=range(c(bp1$breaks,bp2$breaks))
    > vlims=range(c(bp1$counts,bp2$counts))
    > histcol=sapply(apply(rbind(col2rgb(c("orangered2","lightblue"))/255,alpha=c(1,0.5)),2,as.list),do.call,what=rgb)
    > hist(x[x!=0],border="darkred",xlims=hlims,ylim=vlims,nclass=20,col=histcol[1])
    Messages d'avis :
    1: In title(main = main, sub = sub, xlab = xlab, ylab = ylab, ...) :
      "xlims" n'est pas un paramètre graphique
    2: In axis(1, ...) : "xlims" n'est pas un paramètre graphique
    3: In axis(2, ...) : "xlims" n'est pas un paramètre graphique
    > hist(y[y!=0],border="darkblue",add=TRUE,breaks=seq(from=min(hlims),by=diff(bp1$breaks[1:2])),col=histcol[2])
    Erreur dans hist.default(y[y != 0], border = "darkblue", add = TRUE, breaks = seq(from = min(hlims),  : 
      nombre de 'breaks' incorrect
    > hist(y[y!=0],border="darkblue",add=TRUE,breaks=seq(from=min(hlims),by=diff(bp2$breaks[1:2])),col=histcol[2])
    Erreur dans hist.default(y[y != 0], border = "darkblue", add = TRUE, breaks = seq(from = min(hlims),  : 
      nombre de 'breaks' incorrect
    > hist(y[y!=0],border="darkblue",add=TRUE,breaks=seq(from=min(hlims),by=diff(bp1$breaks[1:3])),col=histcol[2])
    Erreur dans hist.default(y[y != 0], border = "darkblue", add = TRUE, breaks = seq(from = min(hlims),  : 
      des valeurs de 'x' n'ont pas été comptées ; peut-être 'breaks' ne couvrent pas l'étendue de 'x'
    J'ai un nombre de breaks incorrect , j'ai le premier graphique qui se dessine en orange.

    Merci

Discussions similaires

  1. Représentation graphique: comment relier les points entre eux?
    Par jordane746 dans le forum ODS et reporting
    Réponses: 0
    Dernier message: 01/06/2014, 23h54
  2. Relier les points d'une série graphique
    Par adelsunwind dans le forum IHM
    Réponses: 3
    Dernier message: 11/05/2013, 08h41
  3. Réponses: 5
    Dernier message: 11/10/2010, 16h06
  4. graphique 3D. relier certains points de ce graphe
    Par blaster9 dans le forum MATLAB
    Réponses: 3
    Dernier message: 19/08/2009, 10h46
  5. Utilisation de jfreechart + ne pas relier les points
    Par franfr57 dans le forum Documents
    Réponses: 1
    Dernier message: 10/07/2008, 09h41

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