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 :

Problème fonction "pcolor"


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 56
    Par défaut Problème fonction "pcolor"
    Bonjour à toutes et à tous !
    Je rencontre actuellement un problème dans l'utilisation de la fonction "pcolor".
    L'objectif est de tracer par un dégradé de couleur les effectifs des couples (gradiant de dissipation,durée) dans l'échantillon suivant:
    grad. dissip(x) durée (y)
    16.7961 3.0000
    4.0099 2.0000
    14.0942 3.0000
    8.3702 1.0000
    7.8334 2.0000
    7.4838 1.0000
    8.9951 3.0000
    -20.0976 2.0000
    -0.7084 1.0000
    -4.9076 1.0000
    -1.1695 1.0000
    -21.0938 5.0000
    -3.5675 1.0000
    Le plot 2D obtenu avec "pcolor" est en pièce jointe.

    Voici le code:
    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
      % Dissipation slopes (column#1) and associated times (column#2)
    B= [16.7961    3.0000
        4.0099    2.0000
       14.0942    3.0000
        8.3702    1.0000
        7.8334    2.0000
        7.4838    1.0000
        8.9951    3.0000
      -20.0976    2.0000
       -0.7084    1.0000
       -4.9076    1.0000
       -1.1695    1.0000
      -21.0938    5.0000
       -3.5675    1.0000]
     
    n=hist3(B,{min(B(:,1)):5:max(B(:,1)) min(B(:,2)):1:max(B(:,2))});
    n1 = n'; 
    n1( size(n1,1) + 1 ,size(n1,2) + 1 ) = 0;
     
    % % Generate grid for 2-D projected view of intensities
    xb = linspace(min(B(:,1)),max(B(:,1)),size(n,1)+1);
    yb = linspace(min(B(:,2))-0.5,max(B(:,2))+0.5,size(n,2)+1);
     
    % % Make a pseudocolor plot on this grid 
    pcolor(xb,yb,n1)
    colormap(hot)
    grid on
    xlabel('Dissipation slope (W)')
    ylabel('Slope time (min.)')
    Le problème se situe sur la figure pour x=[-6.9 ; 2.6] et y=1, car d'après le code des couleurs il y aurait:
    * 1 couple (x,y) vérifiant x=[-6.9 ; -2.149] et y=1
    * 3 couples (x,y) vérifiant x=[-2.149 ; 2.6] et y=1

    Or, si je reprends le tableau ci-dessus, il y a en fait:
    * les couples (-3.5675,1.0000) et (-4.9076,1.0000) vérifiant x=[-6.9 ; -2.149] et y=1, soit 2 couples et non pas 1.
    * les couples (-0.7084,1.0000) et (-1.1695,1.0000) vérifiant x=[-2.149 ; 2.6] et y=1, soit 2 couples et non pas 3.

    D'où vient l'erreur? Merci pour votre support et votre aide...
    Images attachées Images attachées  

  2. #2
    Membre Expert
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Par défaut
    EXcuse moi mais je ne comprends rien à ton graphique et à ton code. Le slope c'est tes x? tu cherches à faire quoi exactement? tu penses qu'il y a un bug dans pcolor?

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 56
    Par défaut
    Citation Envoyé par tug83
    EXcuse moi mais je ne comprends rien à ton graphique et à ton code. Le slope c'est tes x? tu cherches à faire quoi exactement? tu penses qu'il y a un bug dans pcolor?
    En effet, pas très clair ce que je raconte...
    En x: tous les valeurs de pentes (slopes)
    En y: temps ou durée de chaque pente

    J'ai un tableau regroupant tous les couples possibles (pente, durée). Je voudrais un graphe 2D (x,y) avec la fréquence ou l'effectif de chaque couple (x,y) traduit par une couleur, les couleurs allant graduellement du couple le moins présent au couple le plus présent.
    => avec ce graphe j'aurais: les couples (x,y) présents mais aussi le nombre de fois ou ils apparaissent dans le tableau grâce à la couleur.

    Justement je ne sais pas s'il y a un bug ou si j'ai mal codé. J'ai l'impression qu'il y a une erreur sur un couple qui est compté dans le mauvais intervalle. C'est ce que je décris à la fin de mon message précedent.

    J'espère avoir été plus clair...? En tous cas si quelqu'un connaît une autre fonction "couleur" pour tracer en 2D les effectifs des couples (x,y) d'un tableau...Merci!

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Par défaut
    Salut, c'est mon premier post ... j'ai regardé un peu ton problém et j'ai écris ca :

    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
    clear all
    % Dissipation slopes (column#1) and associated times (column#2)
    B= [16.7961 3.0000
    4.0099 2.0000
    14.0942 3.0000
    8.3702 1.0000
    7.8334 2.0000
    7.4838 1.0000
    8.9951 3.0000
    -20.0976 2.0000
    -0.7084 1.0000
    -4.9076 1.0000
    -1.1695 1.0000
    -21.0938 5.0000
    -3.5675 1.0000]
     
    n=hist3(B,{min(B(:,1)):5:max(B(:,1)) min(B(:,2)):1:max(B(:,2))})
    [xx yy]=meshgrid(min(B(:,2)):1:max(B(:,2)),min(B(:,1)):5:max(B(:,1)));
    image(xx(1,: ),yy(:,1),10*n)
     
    ylabel('Dissipation slope (W)')
    xlabel('Slope time (min.)')
    set(gcf,'color',[1 1 1 ])
    Visiblement ca donne la même chose que toi, sauf que si on regarde les differents intervalle en slope qui intervienne dans la représentation, je trouve ca:

    [-23.5938 -18.5938]
    [-18.5938 -13.5938]
    [-13.5938 -8.5938 ]
    [ -8.5938 -3.5938 ]
    [-3.5938 1.4062 ]
    [1.4062 6.4062]
    [6.4062 11.4062]
    [11.4062 16.4062]

    Je ne vois pas les deux intervalles dont tu parles [-6.9 ; -2.149] et [-2.149 ; 2.6]

  5. #5
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 56
    Par défaut
    Citation Envoyé par Makmak
    Salut, c'est mon premier post ... j'ai regardé un peu ton problém et j'ai écris ca :



    Visiblement ca donne la même chose que toi, sauf que si on regarde les differents intervalle en slope qui intervienne dans la représentation, je trouve ca:

    [-23.5938 -18.5938]
    [-18.5938 -13.5938]
    [-13.5938 -8.5938 ]
    [ -8.5938 -3.5938 ]
    [-3.5938 1.4062 ]
    [1.4062 6.4062]
    [6.4062 11.4062]
    [11.4062 16.4062]

    Je ne vois pas les deux intervalles dont tu parles [-6.9 ; -2.149] et [-2.149 ; 2.6]
    Merci pour ta réponse...Les 2 intervalles [-6.9 ; -2.149] et [-2.149 ; 2.6]dont je parle sont autour du marqueur à x=-2.149 sur la figure attachée à mon 1er message. Les 1ers points que je rencontre en déplaçant le marqueur autour de ce point sont à x=-6.9 et x=2.6.
    Ton code est intéressant, le seul souci c'est qu'en affichant la colorbar, celle-ci ne rend pas compte des effectifs des couples, il y a un facteur 10 en trop...

  6. #6
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 56
    Par défaut
    Ouf...je pense avoir trouvé un début de réponse:
    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
      clear all
    % Dissipation slopes (column#1) and associated times (column#2)
    B= [16.7961 3.0000
    4.0099 2.0000
    14.0942 3.0000
    8.3702 1.0000
    7.8334 2.0000
    7.4838 1.0000
    8.9951 3.0000
    -20.0976 2.0000
    -0.7084 1.0000
    -4.9076 1.0000
    -1.1695 1.0000
    -21.0938 5.0000
    -3.5675 1.0000]
     
        n=hist3(B,{min(B(:,1)):5:max(B(:,1))+5 min(B(:,2)):1:max(B(:,2))});
        n1 = n'; 
        n1( size(n1,1) + 1 ,size(n1,2) + 1 ) = 0;
        xb=[(min(B(:,1))-2.5):5:(max(min(B(:,1)):5:max(B(:,1)))+5) (max(min(B(:,1)):5:max(B(:,1)))+5)+2.5];
        yb = linspace(min(B(:,2))-0.5,max(B(:,2))+0.5,size(n,2)+1);
        pcolor(xb,yb,n1);
        colormap(hot)
        colorbar
        grid on
        xlabel('Dissipation slope (W)')
        ylabel('Slope time (min.)')

Discussions similaires

  1. [Wamp] Problème d'insertion avec quote d'un formulaire
    Par cyberdevelopment dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 20/08/2006, 18h55
  2. [SQL-Server] Problèmes de guillemets et quotes dans un INSERT
    Par gregb34 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/05/2006, 09h40

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