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 :

Figure avec contourf


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bahamas

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 26
    Points : 16
    Points
    16
    Par défaut Figure avec contourf
    Bonsoir les amis.

    J´ai une serie de courbe que je genère dans une boucle ''for'' avec ''contourf'' mais il y´en une qui n´apparait pas totalement ie elle est reproduite en une fraction; pourtant, avec ''contour'' je vois bien les isolignes des autres valeurs qui ne sont pas prises en compte par ''contourf''. Et, même encore pour cette figure inachevée, quand j´utilise le ''pcolor'', elle est totalement reproduite. Comment faire pour remedier à cela car j´aimerai utiliser du contourf car elle est mieux adapté pour ces figures.

    Merci d´avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Montre le code que tu utilises et également un aperçu du graphique que tu obtiens.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « 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)

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bahamas

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 26
    Points : 16
    Points
    16
    Par défaut Code et figures
    Merci de votre attention;

    Voici une partie du code que j'utilise et les figures qui en découlent quand j'utilise les différentes fonctions: "pcolor", "contour" ou "contourf".

    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
    clear all; close all; clc
     
    % chemin pour les donnes
    DIR = '../donees/ascii/';
     
    %chemin de lon lat
    DIR1 = '../dados/xls/';
     
    DIR2 = '../mat/';
     
    load ([DIR2,'CFI_fisica_Atol'],'T2A','dens2A','sal2A','latA','lonA')
     
    pA = 1:nA; % cest pour donner la taille
    iA = 1:nA; % pour donner aussi dabord la taille
     
    for i = 1:nA;
        pA(i) = max(depthA(:,i)); % profondeur max
        %pA(i) = 30; % profondeur choisi
        iA(i) = find(depthA(:,i) == pA(i));% determiner lindice de cette profondeur
        %T1fA(i) = T1A(iA(i),i);
    end
     
     
     
    lon1 = lonA([13 12 11 10 4 2 1]);
    lat1 = latA([13 12 11 10 4 2 1]);
    secT11 = T1A(:,[13 12 11 10 4 2 1]);
    secT12 = T2A(:,[13 12 11 10 4 2 1]);
    secS11 = sal1A(:,[13 12 11 10 4 2 1]);
    secS12 = sal2A(:,[13 12 11 10 4 2 1]);
    secdens11 = dens1A(:,[13 12 11 10 4 2 1]);
    secdens12 = dens2A(:,[13 12 11 10 4 2 1]);
     
    cmin = [11.63;
        35.28;
        23.27];
    cmax = [28.09;
        36.43;
        28];
    cint = [1.00;
        0.05;
        0.2];
     
     
    r = 6366; %rayon  de la terre
    loni = -33.8167; %long
    lati = -3.86667;  %lat
    %Conversion des entrées en ° vers des Radians
    lonir = loni*pi/180;
    latir = lati*pi/180;
    lon1r = lon1*pi/180;
    lat1r = lat1*pi/180;
    %Formule précise
    %d=2*asin(sqrt( (sin((lat1-lat2)/2))^2 + cos(lat1)*cos(lat2)*(sin((lon1-lon2)/2))^2))
    dp = NaN(7,1);
    dpA1 = NaN(7,1);
    for i = 1:7;
        dp(i) = 2*asin(sqrt(( sin((latir-lat1r(i))/2))^2) + cos(latir)*cos(lat1r(i))* ( sin((lonir-lon1r(i))/2))^2) ;
        dpA1(i) = dp(i)* r;
    end
    %
    %
    %
    %
     
    %figure
     
    for i = 9:11;
     
        figure (i)
        colormap(jet((cmax(i-8)-cmin(i-8))/cint(i-8)));
     
        if i==9
            var2 = secT12;
            pas  = 11:1:28.09;
            var  = (' echantillon 1');
        elseif i == 10;
            var2 = secS12;
            pas  = 35:0.1:36.5;
            var  = (' echantillon 2');
        else
            var2 = secdens12;
            pas  = 23.27:0.2:28;
            var  = (' echantillon 3');
     
        end
     
        contourf(dpA1,depthA(:,1),var2,pas);
     
        %contour(dpA1,depthA(:,1),var2,pas);
     
        %  pcolor(dpA1,depthA(:,1),var2);
        %   shading flat
     
        caxis([cmin(i-8) cmax(i-8)])
        set(gca,'ylim',[1 300],'ydir','reverse','ytick',(1:20:300),'fontsize',12,'fontweight','bold')
     
        colorbar('vert','ytick',pas)
       title(strcat('Evolution vertical de ',var,'- Atoll'));
     
     
     
    end
    Cordialement
    Images attachées Images attachées    

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Pourrais-tu nous fournir quelques données (le fichier CFI_fisica_Atol.mat ?) pour pouvoir faire des tests ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « 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)

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bahamas

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Bonsoir DUT


    Merci tout d'abord de ta disponibilté!
    Biensûr pour le fichier; il est en pièce jointe.
    J'ai crée une nouvelle variable pour ne prendre en compte que celle qui me créait ce problème afin de ne pas vous encombrer avec le grand fichier.
    Merci

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bahamas

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Voici la Pièce jointe: elle n'a pas été prise en compte dans le precedent message. Cette variable est la 3eme instruction de la boucle "if" dans le code (ie dans l'instructin de "else"): Les autres variables ne me causent pas de problème.

    Merci
    Fichiers attachés Fichiers attachés

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Je ne vois pas du tout à quoi correspond les valeurs contenues dans la variables data ?

    Comment les utiliser avec contourf ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « 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)

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bahamas

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Rebonsoir DUT

    Dans ce fichier, il y'a le nouvaeu code simplifié pourfaciliter l'utilisation
    avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    contourf(dpA1,depthA(:,1),var2,pas);
    où "dpA1" est donné dans le document attaché
    "depthA" est donné dans le document attaché
    "var2" est le même que "secdens12" qui est dans le document attaché et
    "pas" est défini dans le code

    Merci
    Fichiers attachés Fichiers attachés

  9. #9
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Il y a des valeurs NaN dans le tableau depthA, c'est ce qui provoque le mauvais affichage

    Essaie par exemple en les remplaçant par 0 avant d'utiliser contourf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    idx = isnan(depthA(:,1));
    depthA(idx,1) = 0;
    Bien entendu, à toi de voir par quelle valeur les modifier réellement selon la nature des données que tu traces.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « 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)

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bahamas

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Merci pour ta réponse!

    Je suis toujours en difficulté car la variable "depthA" est en fait une matrice profondeur ou les "NaN" représente les profondeurs où l'échantillon n'a pas été prélevé; raison pour laquelle je n'utilise que la 1ère colonne de la matrice. Allant jusqu'à 500 de profondeur, cette première colonne ne contient pas de NaN mais plutôt à partir de 1676. Le truc bizarre est que ça (contourf) trace pour les deux autres échantillons ayant à peu près les mêmes caractéristiques. En pièces jointes, cette figure tracée et sa variable toujours avec ce " deptA(1, )" puisque je le fais dans une boucle; on ne le vois pas dans le dernier code puisque j'ai voulue l'aéré en vous l'envoyant.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Figure avec 1 espace entre deux images
    Par jbollagnier dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 28/02/2008, 11h50
  2. GMF: creer une combinaison de figures avec un tool
    Par tschaedi dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 30/01/2008, 10h24
  3. Comment afficher toutes les courbes avec contourf ?
    Par developpeur82 dans le forum MATLAB
    Réponses: 2
    Dernier message: 02/04/2007, 11h14
  4. Séries de figures (avec subplot à l'intérieur)
    Par AC88mm dans le forum MATLAB
    Réponses: 3
    Dernier message: 01/04/2007, 16h19
  5. Dessiner une figure avec graphics.h
    Par Firas_tn dans le forum C
    Réponses: 2
    Dernier message: 29/03/2006, 20h33

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