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 :

Spécifier la couleur dans colorbar


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Spécifier la couleur dans colorbar
    bonjour

    vous avez résolu le problème de spécifier une couleur pour la valeur 0 dans cette discussion : Spécifier une couleur à une valeur

    Est ce que vous pouvez m'aider,le problème que j'ai c'est que je veux spécifier pour chaque intervalle une couleur.
    Par exemple les valeurs entre 0 et 1 doivent etre en rouge
    entre 1 et 5 en bleu

    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 318
    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 318
    Points : 52 956
    Points
    52 956
    Par défaut
    Tu pourrais nous dire quels objets tu traces (Line, Surface, Patch) et quelles fonctions tu utilises ?

    Montre nous du code

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut [Débutant] spécifier la couleur dans colorbar
    Voila mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [lon,lat]=meshgrid([ -35.00:0.25:35.00],[ 44.50:-0.25:10.00]);
    m_proj('miller','lon',[-35 15],'lat',[10 44]);
    temp=load('C:\Documents and Settings\hanane\Bureau\travail_lundi\max_min_12m\mat_max_HS_01.txt');
    hold on 
    m_pcolor(lon,lat,temp); shading interp;
    [c,h]=m_contour(lon,lat,temp,'k');
    clabel(c,h,'fontsize',8);
    m_coast('patch','k','edgecolor','k','linewi',2);
    m_grid('box','fancy','linestyle','none');
    ylabel('Latitude (°)','FontSize',11,'FontWeight','demi');
    xlabel('Longitude (°)','FontSize',11,'FontWeight','demi');
    colorbar

  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 318
    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 318
    Points : 52 956
    Points
    52 956
    Par défaut
    Est-il possible de joindre un fichier mat_max_HS_01.txt (sous format zip) à ton message ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut [Débutant] spécifier la couleur dans colorbar
    Je suis désolé pour le retard.
    voila le fichier

    merci d'avance
    Fichiers attachés Fichiers attachés

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    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 318
    Points : 52 956
    Points
    52 956
    Par défaut
    Comme ceci :

    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
    [lon,lat]=meshgrid([ -35.00:0.25:35.00],[ 44.50:-0.25:10.00]);
    m_proj('miller','lon',[-35 15],'lat',[10 44]);
    temp=load('mat_max_HS_01.txt');
     
    % Les intervalles
    interv=[0 1 5 8];
     
    maxtemp=max(temp(:));
    % Construction de la nouvelle palette de couleurs (Colormap)
    % Choisir N suffisamment grand
    N=128;
    d=round(diff([interv maxtemp])*N/maxtemp);
    % Construction de d développée :
    % for n=1:numel(interv)-1
    %     d(n)=round((interv(n+1)-interv(n))*N/max(temp(:)));
    % end
    % d(n+1)=round((max(temp(:))-interv(n+1))*N/max(temp(:)));
     
    col=hsv(numel(d));
    col=col(end:-1:1,:);
     
    newcmap=[];
    for n=1:numel(d)    
        newcmap=[newcmap ; repmat(col(n,:),d(n),1)];    
    end
     
    % Création de l'objet Figure
    figure;
    % Mise en place de la palette de couleur newcmap
    colormap(newcmap)
     
    h=m_pcolor(lon,lat,temp); 
    shading interp;
     
    colorbar
     
    hold on 
    [c,h]=m_contour(lon,lat,temp,interv,'k');
    clabel(c,h,'fontsize',8);
     
    m_coast('patch','k','edgecolor','k','linewi',2);
    m_grid('box','fancy','linestyle','none');
    ylabel('Latitude (°)','FontSize',11,'FontWeight','demi');
    xlabel('Longitude (°)','FontSize',11,'FontWeight','demi');

  7. #7
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut [Débutant] spécifier la couleur dans colorbar
    Merci bien pour votre aide.

    J'ai testé plusieurs exemples, mais une fois je change interv=[0 1 5 8]
    par interv=[0 0.1 0.5 1.25 2.5 4 6 9 14] il me donne des cartes bizar.

    le même problème si je change le fichier temp.

    merci d'avance

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    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 318
    Points : 52 956
    Points
    52 956
    Par défaut
    Le problème vient de la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_grid('box','fancy','linestyle','none');
    En la mettant en commentaire (avec un % devant), la carte apparait normalement.

    Autre chose, chacune des valeurs des intervalles doit être inférieure à la valeur maximale contenue dans temp. Dans l'exemple donné, la valeur 14 est supérieur au max de temp (issu du fichier mat_max_HS_01.txt) qui est 11.

    De plus, le code ci-dessus assume que la valeur minimale de temp est 0.

  9. #9
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut [Débutant] spécifier la couleur dans colorbar
    Merci beaucoup pour vorte reponse

    ok c'est bon, mais j'ai plusieurs exemples de fichier temp, par exemple pour temp1 les valeurs sont comprisent entre 0 et 4, alors que pour temp2 les valeurs sont comprisent entre 0 et 1.25 et je veux que toute les cartes auront la même colorbar( 0 0.1 0.5 1.25 4 6 9 14) pour faire une comparaison.


    Je suis désolé et merci encore une fois.

  10. #10
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    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 318
    Points : 52 956
    Points
    52 956
    Par défaut
    Comme ceci :

    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
    [lon,lat]=meshgrid([ -35.00:0.25:35.00],[ 44.50:-0.25:10.00]);
    m_proj('miller','lon',[-35 15],'lat',[10 44]);
    temp=load('mat_max_HS_01.txt');
    
    % Les intervalles
    interv=[0 0.1 0.5 1.25 2.5 4 6 9];
    
    maxtemp=14;
    % Construction de la nouvelle palette de couleurs (Colormap)
    % Choisir N suffisamment grand
    N=128;
    d=round(diff([interv maxtemp])*N/maxtemp);
    
    col=hsv(numel(d));
    col=col(end:-1:1,:);
    
    newcmap=[];
    for n=1:numel(d)    
        newcmap=[newcmap ; repmat(col(n,:),d(n),1)];    
    end
    
    % Création de l'objet Figure
    figure;
    % Mise en place de la palette de couleur newcmap
    colormap(newcmap)
    
    h=m_pcolor(lon,lat,temp); 
    shading interp;
    
    hold on 
    [c,h]=m_contour(lon,lat,temp,interv,'k');
    clabel(c,h,'fontsize',8);
    caxis([0 14])
    colorbar
    
    m_coast('patch','k','edgecolor','k','linewi',2);
    % m_grid('box','fancy','linestyle','none');
    ylabel('Latitude (°)','FontSize',11,'FontWeight','demi');
    xlabel('Longitude (°)','FontSize',11,'FontWeight','demi');
    Il faut aussi chercher un peu dans la documentation pour voir comment son gérer les palettes de couleur (Colormap) et plus généralement la couleur sous MATLAB

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 04/05/2015, 00h29
  2. [Matplotlib] Fixer l'échelle des couleurs dans une colorbar?
    Par Amika_M dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 08/09/2009, 17h42
  3. comment spécifier une couleur d'1 bouton dans menu
    Par seboune1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/12/2007, 03h30
  4. [C#] Comment mettre une ligne en couleur dans mon DataGrid ?
    Par vandeyy dans le forum Windows Forms
    Réponses: 7
    Dernier message: 19/07/2004, 11h03
  5. Ecrire du texte en couleurs dans un composant
    Par wutang dans le forum Composants
    Réponses: 11
    Dernier message: 12/07/2004, 11h55

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