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 :

[contourf] Lisser le graphique obtenu


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Points : 26
    Points
    26
    Par défaut [contourf] Lisser le graphique obtenu
    Bonjour à tous !!!

    Je rencontre un petit problème, en effet je fais une représentation sous forme de figure de mes données sous matlab avec la fonction imagesc mais on va dire que j'aimerais lisser un peu tout cela !!

    J'ai donc utiliser la focntion contourf mais qui me donne quelque chose de très grossier !!!

    J'aimerais savoir si il existait une autre fonction ou alors un paramètre que je n'ai pas trouvé afin de lisser ma figure ?


    Je vous remercie !!!


    P.S. : je vous met la figure avec imagesc, avec contourf et celle désirée.
    Images attachées Images attachées    

  2. #2
    Expert confirmé
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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
    Points : 4 039
    Points
    4 039
    Par défaut
    Peut être qu'il faut que tu joues avec la colormapeditor
    MATLAB 8.2 (R2013b)

    le blog des MATLAB geeks

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Points : 26
    Points
    26
    Par défaut
    Merci pour cette solution, mais le problème c'est que cela ne fonctionne pas car je ne peux que modifier la couleur de mes zones !

    Alors que j'aimerais lisser la couleur entre les zones justement ... et je ne sais pas trop comment !!!

    De plus mes zones sont délimitées par des traits noir que je ne sais pas non plus enlever !

  4. #4
    Expert confirmé
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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
    Points : 4 039
    Points
    4 039
    Par défaut
    Sans code c'est dur de voir ce que t'as fait exactement .
    D'où provient la troisième figure que tu cherches à obtenir?
    Est ce que tuas joué avec les arguments de contourf?

    Par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [C,h] = contourf(peaks(20),2);
    ne donnera pas la même figure que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [C,h] = contourf(peaks(20),10);
    MATLAB 8.2 (R2013b)

    le blog des MATLAB geeks

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Points : 26
    Points
    26
    Par défaut
    La troisième figure correspond à ce qu'a réalisé une autre personne (à qui je ne pourrais jamais demander comment elle a fait !)

    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    figure(2)
    colormap(jet);
    colormapeditor
    contourf(spinal_cord_map,10);
    Sachant que j'ai un fichier de 200 lignes et 24 colonnes

    J'ai déjà essayé ce que vous venez de me montrer, mais cela ne fonctionne pas!
    Pensez-vous qu'en appliquant un filtre cela pourrait fonctionner ?

  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 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 : 53 166
    Points
    53 166
    Par défaut
    PCOLOR peut également être une possibilité :

    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
    Z = peaks(30);
     
    figure
    subplot(311)
    imagesc(Z);
    axis image off
    title('IMAGESC')
     
    subplot(312)
    p = pcolor(Z);
    set(p,'facecolor','interp','edgecolor','none')
    axis equal off
    title('PCOLOR')
     
    subplot(313)
    [c,h] = contourf(Z,64);
    set(h,'linecolor','none')
    axis equal off
    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)

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Points : 26
    Points
    26
    Par défaut
    Bonjour,


    Merci merci !! j'ai adapté un peu le code et maintenant c'est exactement ce que je désirais !

    Je vous remercie énormément !!

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Points : 26
    Points
    26
    Par défaut
    Me revoila !!!

    Je rencontre un autre problème suite à la colorbar.
    En effet, j'aimerais quelle est la même échelle pour chacune de mes figures.
    Pour le moment, j'ai réussi à régler le max mais les couleurs ne s'adapte pas à l'intensité ...

    Pour mieux comprendre regarder les 2 images avec la colorbar, elle est blanche vers le haut ... la couleur s'adapte aux données et non à l'échelle de la colorbar

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    figure(1)
    [c,h] = contourf(BD1t,64);
    c = colorbar; ylim(c,[0,6.5E-4])
    colormap(jet);
    set(h,'linecolor','none')
     
    figure(2)
    [c,h] = contourf(BD2t,64);
    c = colorbar; ylim(c,[0,6.5E-4])
    colormap(jet);
    set(h,'linecolor','none'

    Plus petite question supplémentaire, je n'arrive pas à mettre les Y dans l'autre sens, c'est a dire faire un reverse de Y ...
    Images attachées Images attachées   

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Points : 26
    Points
    26
    Par défaut
    Problème résolu !!!

    Voici le code pour ceux qui désire,
    il suffit de régler "caxis"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    figure(9)
    [c,h] = contourf(SD1t,64);
    caxis([0,6.5E-4]); colorbar;
    colormap(jet);
    set(h,'linecolor','none')
    Merci à tous

  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 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 : 53 166
    Points
    53 166
    Par défaut
    Citation Envoyé par mattparla Voir le message
    Plus petite question supplémentaire, je n'arrive pas à mettre les Y dans l'autre sens, c'est a dire faire un reverse de Y ...
    Si tu parles de l'axe des ordonnées du graphique principale, tu peux utiliser l'une des deux commandes suivantes après l'appel à CONTOURF :

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(gca,'ydir','reverse')
    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)

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Points : 26
    Points
    26
    Par défaut
    Merci, j'ai utilisé cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(gca,'YDir','reverse')
    j'ai oublié de le mettre dans le post précédent !


    Encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formalisation graphique des algorithmes
    Par David R. dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 08/12/2012, 10h21
  2. [pcolor/contourf] Superposition de graphiques
    Par Merel dans le forum MATLAB
    Réponses: 2
    Dernier message: 02/06/2008, 12h49
  3. [JpGraph] Lisser un graphique
    Par Luffy Duck dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 19/07/2006, 11h18
  4. [RAVE][DELPHI7] Comment faire un graphique ?
    Par DFANDOR dans le forum Rave
    Réponses: 7
    Dernier message: 06/02/2003, 20h25
  5. Réponses: 10
    Dernier message: 27/08/2002, 23h24

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