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 :

Colormap avec couleur fixes selon la valeur pour deux graphes différents


Sujet :

MATLAB

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 134
    Points : 61
    Points
    61
    Par défaut Colormap avec couleur fixes selon la valeur pour deux graphes différents
    Mais que veut dire ce titre alambiqué ?

    En fait je suis en train de tracer des graphes (voir piece jointe) avec colorbar.

    Nom : colormap.GIF
Affichages : 1832
Taille : 16,3 Ko

    Mon probleme, c'est que la couleur rouge foncée sur le premier graphe correspond à une valeur de 35 000 et sur le deuxieme graphe à une valeur de 60 000 et plus.

    Moi j'aimerais que pour une valeur, il y ait une couleur associée qui soit la même sur tous les graphes.

    C'est possible de faire ça ?
    Pouvez-vous m'indiquer comment, je n'ai pas trouvé ca dans la doc.


    Par ailleurs, j'aimerais obtenir le même genre de graphe (ce n'est pas moi qui ai créé ceux-là).
    J'ai une matrice pour les temps, qui correspond à la colorbar, avec pour chaque temps des coordonnées (x et y).

    Comment parvenir au résultat montré plus haut, c'est à dire tracer la position pour chaque temps en colorant graduellement les temps ?


    Merci d'avance.

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Salut,

    On ne voit pas bien sur l'image, ce sont des points ou une ligne qui est affiché?

    Sinon, je pense que tu peux chercher du côté de surf (et du coup de caxis pour utiliser le même codage couleur).

    Pourrais-tu mettre un exemple de tes données à afficher?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 134
    Points : 61
    Points
    61
    Par défaut
    Salut.

    Sur l'image, c'est bien une ligne qui est affichée (mais qui n'est que la liaison de plusieurs points).


    Mes données sont par exemple:

    position_x = [1 5 6 8 9 15];
    position_y = [2 2 2 2 3 5];
    temps = [123 150 180 204 235 266];

    et je cherche donc à tracer

    temps = f(position_x, position_y)

    avec une échelle de couleur pour le temps.

    (Mon tracé n'est pas une fonction, c'est juste la représentation d'une trajectoire (d'un animal, d'un véhicule, peu importe) en fonction du temps dans un espace limité).

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 134
    Points : 61
    Points
    61
    Par défaut
    Je ne suis pas sûr que surf soit la fonction la plus adaptée.

    Elle semble tracer un truc en 3D, ce dont je n'ai pas besoin.

    En plus, ses paramètres sont surf(position_x, position_y, temps)

    avec temps une matrice et non un vecteur, ce qui ne convient pas à mon cas.

    J'ai essayé en transformant le vecteur temps en une matrice diagonale avec les valeurs sur la diagonale et des zéros ailleurs mais ca ne marche pas.


    Personne n'a d'idée pour m'aider ?


    Je cherche du côté de la fonction scatter, qui me parait plus adaptée.

    Le problème, c'est qu'elle trace des ronds non reliés, et que je ne vois pas comment controler la couleur des ronds en fonction des valeurs des temps comme je souhaite le faire.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 134
    Points : 61
    Points
    61
    Par défaut
    Et bien disons que je me réponds à moi même pour ceux que ça intéresse.


    Je pense utiliser plot tout simplement, de cette facon ci :

    plot(position_x, position_y,'Color', [.1 .2 .3])

    avec la matrice [] qui indique la couleur en rgb et qui change à chaque plot.


    Mais pour faire ca, j'ai encore besoin de votre aide.

    Où trouver (ou comment construire) une matrice qui comporterait toutes les combinaisons rgb rangées dans l'ordre du bleu au rouge avec toutes les couleurs intermédiaires comme dans la colorbar de Matlab ?

  6. #6
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    C'est un peu l'idée qui est là :
    Comment associer une couleur unique à chaque courbe tracée ?

    Si tu regardes l'aide de HSV tu devrais avoir en lien la liste de toutes les colormap disponibles.
    Règles du Forum

    Adepte de la maïeutique

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Citation Envoyé par fuyo2004 Voir le message
    Et bien disons que je me réponds à moi même pour ceux que ça intéresse.


    Je pense utiliser plot tout simplement, de cette facon ci :

    plot(position_x, position_y,'Color', [.1 .2 .3])
    Ok vu la tête de tes données tu peux utiliser plot, mais dans ton exemple de départ il y avait des points de même abscisse avec des ordonnées différentes, ce qui n'est pas possible avec plot (enfin je crois....)


    Citation Envoyé par fuyo2004
    Je cherche du côté de la fonction scatter, qui me parait plus adaptée.

    Le problème, c'est qu'elle trace des ronds non reliés, et que je ne vois pas comment controler la couleur des ronds en fonction des valeurs des temps comme je souhaite le faire.
    Et un mélange de scatter et de plot? scatter pour te servir à tracer des ronds (ou des croix ou ce que tu veux) et tu peux imposer un scalaire pour la couleur de tes points (dans scatter(X,Y,S,C) C peut-être un vecteur de la même taille qui est linéairement mappé sur la colormap) et ensuite tu fais un plot pour rejoindre tes points...
    Mais il y a peut-être plus simple effectivement en travaillant directement sur la colormap du plot.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 134
    Points : 61
    Points
    61
    Par défaut
    Merci à tous les deux, grace à vous j'ai écrit une petite fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    couleurs=hsv(round(60000/30));        % je change de couleur toutes les 30ms pour un parcours de 60 000 ms en tout
            m=temps(1);
            t=1;
            for j=2:length(temps)
                if temps(j)-m > 30
                    t=t+1;
                    m=temps(j);
                end
                plot([x(j-1) x(j)], [y(j-1) y(j)], 'Color', couleurs(t,:));
                hold on;   
            end
    qui me donne un résultat satisfaisant :

    Nom : path-exemple.GIF
Affichages : 1663
Taille : 17,8 Ko

    Mon dernier problème, c'est que je n'arrive pas à afficher une barre de couleur correspondante à côté.
    colorbar me donne une barre toute noire.

    Comment faire ca ?

    Merci.

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 53
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par fuyo2004 Voir le message

    Mon dernier problème, c'est que je n'arrive pas à afficher une barre de couleur correspondante à côté.
    colorbar me donne une barre toute noire.

    Comment faire ca ?

    Merci.
    Juste en rajoutant "colorbar;" en dessous du code pour ton graphique

Discussions similaires

  1. Réponses: 15
    Dernier message: 13/02/2015, 16h24
  2. [AC-2007] Conservé une valeur pour utilisé dans différents formulaire
    Par theuma dans le forum Access
    Réponses: 6
    Dernier message: 09/05/2011, 11h51
  3. menu avec couleur differente selon page
    Par Stéph utilisateur d'acces dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 20/01/2009, 07h01
  4. Réponses: 6
    Dernier message: 24/05/2007, 13h40
  5. Réponses: 3
    Dernier message: 24/07/2006, 16h11

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