1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    mars 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : mars 2012
    Messages : 13
    Points : 11
    Points
    11

    Par défaut construire un histogramme

    Bonjour,

    Je n'arrive pas à obtenir l'histogramme que je souhaite où les classes sont dans le vecteur x et les hauteurs des rectangles dans le vecteurs m. Je ne comprends pas mon erreur. Pourriez-vous m'aider s'il vous plaît ?

    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
     
     m=zeros(1,40);
    for i=1:1000
        L=zeros(1,40);
        for j=1:40
        L(j)=rand();
        end
    L=sum(L);
    L=floor(L)+1;
    m(L)=m(L)+1;
    end
    m=m./1000;
     clf();
     x=zeros(1,40);
     for i=1:41
         x(i)=i-1;
     end
     histplot(x,m)
    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Consultant R&D - Mécatronique - MATLAB/Scilab
    Inscrit en
    novembre 2006
    Messages
    19 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant R&D - Mécatronique - MATLAB/Scilab
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2006
    Messages : 19 255
    Points : 53 604
    Points
    53 604

    Par défaut

    Le bloc suivant me parait bizarre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     x=zeros(1,40);
     for i=1:41
         x(i)=i-1;
     end
    Ne cherches-tu pas à faire simplement ceci ?

    Sinon, utilise la fonction bar pour afficher l'histogramme :

    Images attachées Images attachées  
    Sur mon blog : Afficher une photo avec la bonne orientation dans MATLAB

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

    « And the drip and the drip and the drip of the Mississippi cryin' - And Saint Huck hears his own Mississippi just rollin' by him » (Saint Huck)

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    mars 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : mars 2012
    Messages : 13
    Points : 11
    Points
    11

    Par défaut

    Bonjour,

    Merci pour votre réponse.

    En fait histplot demande la série brute et calcule lui même la fréquence des valeurs dans une classe. Le bon programme et celui ci-dessous:
    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
     
    k=1000;
    q=40;
     m=zeros(1,k);
    for i=1:k
        L=zeros(1,q);
        for j=1:q
        L(j)=rand();
        end
    L=sum(L);
    m(i)=L;
    end
     clf();
     x=zeros(1,q);
     for i=1:q+1
         x(i)=i-1;
     end
     histplot(x,m,style=2)
     // Calcul de la moyenne
     
     mu=sum(m)/k;
     
     // Calcul de la variance
     
     va=sum((m-mu).^2)/k;
     sigma=sqrt(va);
     
     // représentation de la loi normale
     
     xbis=0:0.1:q;
     y=zeros(1,q*10+1);
     for j=1:q*10+1
         y(j)=1/(sigma*sqrt(2*%pi))*exp(-(xbis(j)-mu)^2/(2*va));
     end
     plot(xbis,y)
     a=gca()
     a.grid=[1 1]
     a.thickness=1
    Maintenant j'ai un autre souci. Je voudrais faire des classes d'amplitude 0.5 et non d'amplitude 1. Le problème étant que l'ordonnée ne doit plus être égale à la fréquence de la classe mais à deux fois la fréquence de la classe pour que l'aire du rectangle soit égale à la fréquence. Or quand je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    x=0:0.5:40;
     histplot(x,m,style=2)
    histplot a bien fait des classes d'amplitude 0.5 mais la hauteur des bâtons est égale à la fréquence de la classe et non 2 fois la fréquence de la classe. Comment régler ce problème ? Y-a-t-il une option de histplot pour cela ?

    Merci beaucoup et bon week-end de pâques.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Consultant R&D - Mécatronique - MATLAB/Scilab
    Inscrit en
    novembre 2006
    Messages
    19 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant R&D - Mécatronique - MATLAB/Scilab
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2006
    Messages : 19 255
    Points : 53 604
    Points
    53 604

    Par défaut

    Pourquoi ne pas modifier directement les valeurs sur l'axe des ordonnées ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    x = 0:0.5:40;
    histplot(x,m,style=2)
     
    a = gca()
    a.y_ticks.labels = string(2*a.y_ticks.locations)
    Sur mon blog : Afficher une photo avec la bonne orientation dans MATLAB

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

    « And the drip and the drip and the drip of the Mississippi cryin' - And Saint Huck hears his own Mississippi just rollin' by him » (Saint Huck)

Discussions similaires

  1. Questions sur chartfx (histogramme)
    Par lejert dans le forum C++Builder
    Réponses: 2
    Dernier message: 20/01/2004, 13h54
  2. Difficulté à construire une requête
    Par coolcpu dans le forum Langage SQL
    Réponses: 6
    Dernier message: 08/10/2003, 00h43
  3. construire 1 gateway avec 1 carte réseaux sous débian
    Par regular dans le forum Développement
    Réponses: 4
    Dernier message: 28/08/2003, 01h05
  4. Construire chemin sur bouton avec évt Javascript
    Par Ph. B. dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/05/2003, 10h26
  5. [TChart] comment remplir un histogramme avec du rouge strié.
    Par :GREG: dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/08/2002, 09h37

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