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

MATLAB Discussion :

Barre d'erreur sur un ensemble de points


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    mars 2021
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2021
    Messages : 44
    Points : 27
    Points
    27
    Par défaut Barre d'erreur sur un ensemble de points
    Bonjour,
    Je trace des graphiques assez simple qui consiste en un ensemble de points de mesures en fonction de l'altitude :

    Nom : Ozone profile 1-8pvu.jpg
Affichages : 67
Taille : 113,8 Ko

    Voici le code pour afficher ce graphe :
    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
     
    load AMA
    load NoAMA
    load AvgNotAMA
    load AvgAMA
     
    scatter(AMA(:,1),AMA(:,2), 15, 'r', 'filled')
    hold on 
    plot(NoAMA(:,1),NoAMA(:,2), 'ko', 'MarkerSize', 1)
    hold on 
    plot(AvgNotAMA(:,1),AvgNotAMA(:,2), 'b', 'LineWidth', 1.5 )
    hold on 
    plot(AvgAMA(:,1),AvgAMA(:,2),'g',  'LineWidth', 2)
     
    legend('AMA region parcels','Other regions parcels','Average Non-AMA','Average AMA');
    xlabel(['Ozone mixing ratio (ppmv)']);
    ylabel('Altitude (km)');
    title('Ozone profile (AMA 1-8pvu) 2011');
    set(gca,'fontsize',16)
    Les données des points rouges sont dans le fichier AMA, et celles des points noirs dans NoAMA.
    (altitude en colonne 1 et points de mesures en colonne 2)

    Je cherche simplement à tracer des 'barres de dispersion' des points en fonction de l'altitude pour les différentes couleurs de points.
    Donc juste avoir une barre reliant les points extrêmes de chaque altitude, pour les points noirs, et pour les points rouges.
    Sauriez-vous comment coder ça ?

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2005
    Messages
    1 828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2005
    Messages : 1 828
    Points : 3 336
    Points
    3 336
    Par défaut
    salut

    la fonction errorbar ne te convient pas ?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    mars 2021
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2021
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    Salut!

    J'ai regardé pour errorbar mais cette fonction requiert qu'on a déjà calculé des erreurs à chaque coordonnées si j'ai bien compris ?
    Dans mon cas je n'ai pas du tout ces erreurs, j'ai juste un ensemble de points sur ces altitudes.

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2005
    Messages
    1 828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2005
    Messages : 1 828
    Points : 3 336
    Points
    3 336
    Par défaut
    alors il faut la calculer
    comment vois tu les choses ?

    moi je calculerais par exemple le 1er et le 9ème décile (ou le 1er et le 3ème quartile), à l'aide de la fonction histcounts par exemple
    mais tu peux aussi afficher d'autre éléments statistiques (standard déviation, ...)

    d'ailleurs j'aime beaucoup les boites à moustache pour ce genre de représentation (bplot par exemple)

    tu peux aussi calculer l'enveloppe de tes points

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    mars 2021
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2021
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    Bonjour ! merci pour la réponse,

    Alors j'avoue ne pas avoir réussi à utiliser la fonction histcount...

    J'ai essayé de calculer le z-score avec ce code mais ça n'a pas l'air d'être bon :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    x = AMA(:,2)
    zsc = (x-mean(x))./std(x);
    Mais ce n'est pas vraiment ce que je cherche, calculer les déciles me semblent bien mais je n'y arrive pas trop avec cette fonction

  6. #6
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2005
    Messages
    1 828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2005
    Messages : 1 828
    Points : 3 336
    Points
    3 336
    Par défaut
    salut

    un exemple de calcul des 1er et 9ème déciles
    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
    clc
    close all
     
    %% données
    alt = 0:0.0001:2;
    val = 1 - cos(alt) + rand(size(alt));
    valm =  1 - cos(alt) + 0.5;
     
    %% figure brute
    figure
    plot(val,alt,'.')
    hold on
    plot(valm,alt,'linewidth',2)
    ylabel('altitude Z')
    xlabel('valeur V')
     
     
    %% calcul moyenne + 1er et 9eme décile
    % on découpe les altitudes par tranche de 0.2 de large
    vZ_Edges = 0:0.2:2; % bornes
    vZ = (vZ_Edges(1:end-1) + vZ_Edges(2:end))/2; % milieux des tranches
     
    % initialise les vecteurs résultats
    vV_1d = nan(size(vZ)); % 1er decile
    vV_med = nan(size(vZ)); % médiane
    vV_9d = nan(size(vZ)); % 9eme decile
     
    % on parcours les altitudes
    for idxZ = 1:numel(vZ)
        % on calcule le vecteur index des altitude appartenant à la tranche en
        % cours
        idxTranche = (alt >= vZ_Edges(idxZ)) & (alt < vZ_Edges(idxZ+1));
     
        % on calcule la répartition des points par tranche 
        % en découpant chaque tranche par 100
        [N, edges] = histcounts(val(idxTranche) ,100);
     
        % on calcul le cumule de N en %
        N = cumsum(N)/sum(N)*100;
     
        % on calcul les valeurs moyennes des bornes des 100 tranches
        edges = (edges(1:end-1) + edges(2:end))/2;
     
        % on recherche les altitudes pour les 1ers deciles, mediannes et 9eme
        % décile, et on les affecte aux vecteurs résultats
        vV_1d(idxZ) = edges(find(N<=10,1,'last'));
        vV_med(idxZ) = edges(find(N>=50,1,'first'));
        vV_9d(idxZ) = edges(find(N>=90,1,'first'));
     
    end
     
    %% figure centrée sur la mediane
    figure
    plot(vV_med, vZ, 'b-','linewidth',2)
    hold on
    plot(vV_1d, vZ, 'b-')
    plot(vV_9d, vZ, 'b-')
    grid on
    title('valeur moyenne et 1er et 9eme decile')
    en espérant que cela soit assez clair

Discussions similaires

  1. [Débutant] [errorbar] barre d'erreur sur quelques points seulement
    Par foufi86 dans le forum MATLAB
    Réponses: 4
    Dernier message: 30/11/2016, 11h47
  2. Réponses: 5
    Dernier message: 14/12/2014, 09h41
  3. Direct linear transformation sur un ensemble de points
    Par snipemi dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 08/04/2010, 23h44
  4. excel 2007 et barre d'erreur sur histogramme
    Par chat-lotte dans le forum Excel
    Réponses: 1
    Dernier message: 24/02/2008, 18h12
  5. barre d'erreur sur graphique excel
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/10/2006, 14h41

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