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 :

Polar et color


Sujet :

MATLAB

  1. #1
    Membre du Club
    Polar et color
    Je ne suis peut-être pas complètement réveillé, mais je n'arrive pas à rentrer des argument comme "color" ou "linestyle" dans une fonction polar...

    Exemple (j'ai simplifié un max!!!!)

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    th=linspace(0,2*pi,100);
    am=sin(th);
    polar(th,am,'color','r')


    La seule chose qui marche est

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    th=linspace(0,2*pi,100);
    am=sin(th);
    polar(th,am,'r')


    Or ce que j'aurais besoin, c'est de spécifier la couleur à l'aide des valeurs RGB (donc pas possible dans ce cas)...

    J'suis pas réveillé, c'est un bug, ou ces arguments ne sont pas disponible sous matlab ?????

  2. #2
    Rédacteur/Modérateur

    Essaie ceci :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    th=linspace(0,2*pi,100);
    am=sin(th);
    h=polar(th,am); 
    set(h,'color',[1 1 0])
    Mes compétences :
    • conception mécanique 3D (Autodesk Fusion 360)
    • développement informatique (MATLAB, Python, C, VBA)
    • impression 3D (Ultimaker)
    • programmation de microcontrôleur (Microchip PIC et 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 du Club
    Nikel

    C'était moi, je ne suis pas très réveillé...
    J'ai tellement l'habitude d'intégrer la couleur à plot directement, que j'en ai oublié la fonction "set"...

    Merci beaucoup...

  4. #4
    Membre du Club
    C'est encore moi
    J'ai un autre petit problème avec polar

    Voila le problème (version simple) :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    th=linspace(0,2*pi,100);
    am=sin(th);
    polar(th,am);
    hold on
    polar(th,2*am);


    Une de mes courbes (la seconde) sort de la zone, pour cela j'ajoute :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    axis auto


    Mais le problème, c'est que les axes polaires n'ont pas suivi... la courbe reste dans la zone grise...

    Je peut récupérer le max de mes figures, j'ai essayé avec xlim,ylim, mais ça n'a rien donné.

    Merci

  5. #5
    Expert éminent sénior
    Essaye plutôt :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    axis tight
    (enfin en tout cas avec ton exemple chez moi ça marche)
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  6. #6
    Membre du Club
    Euhh.....pas chez moi

    La courbe est toujours dans la zone grise (=> je ne peux pas lire les valeurs)...

    C'est exactement pareil que


  7. #7
    Expert éminent sénior
    Pardon je n'avais pas bien compris.
    En recherchant sur le Forum on s'aperçoit que la fonction POLAR n'est pas forcément très ... flexible.
    Je ne suis pas sure que tu puisses faire ce que tu souhaites.
    Essaye de voir dans le FEX : Advanced Polar Plots
    (il y en avait une bien mmpolar, mais il semble qu'elle ait disparu du FEX )
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  8. #8
    Membre du Club
    Ok merci je regarde, mais c'est vrai que ça n'a pas l'air super flexible...

    et mmpolar a bien disparu (et oui, j'ai fait des recherche sur le forum...)

  9. #9
    Membre du Club
    Advanced Polar Plots a l'air bien, mais compliqué, et pas transposable immédiatement.

    Finalement, j'ai réussit. Attention, méthode complètement tordu (à ne pas montrer aux enfants...) :

    1. Je repère le max de toutes mes courbes = mamax
    2. Je trace quelque chose dans le genre :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    th=linspace(0,2*pi,10)
    h=polar(th,mamax*sin(th))

    3. Subtilité, je "gomme" h :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    delete(h)

    4. Voila un cadre parfait pour mes autres courbes : je maintient ce cadre avec
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    hold on


    et voila...

    Vive le codage

    Merci à tous, vous m'avez bien aidé à avancer.