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 :

Réglage automatique de l'ordonnée des figures


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Réglage automatique de l'ordonnée des figures
    Bonjour,

    Dans le cadre du développement d'un outil de post-traitement de base de données, je suis amené à tracer des nombreuses figures.

    Pour certaines valeurs, j'ai obtenu un résultat visuel inadéquat. En effet, j'avais par exemple seulement 3 lignes de la grille en ordonnée. J'ai donc utilisé le paramètre Ytick pour régler le nombre de lignes à une valeur mini (tout en réglant cela par rapport à la valeur mini et maxi des courbes).

    Malheureusement, en procédant ainsi j'obtiens pour mes axes de la grille en ordonnée des valeurs dépendantes de l'intervalle des valeurs extrêmes et le résultat est finalement pas agréable. En effet, je n'ai pas forcément une ligne sur la valeur 0 si ma courbe s'étend des valeurs négatives à positives.

    Je trouve que Matlab réalise cela correctement sans modification. Je souhaite donc lui imposer un nombre de lignes de ma grille en ordonnée et lui laisser gérer leurs valeurs comme il le fait pas défaut.

    Est ce que quelqu'un saurait m'indiquer si cela est possible?

    Merci par avance,

    Martin

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2012
    Messages
    292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 292
    Points : 435
    Points
    435
    Par défaut
    Bonjour,

    Pour voir plus clair, est-il possible de nous montrer la partie de code que tu as faites sur l'affichage?

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Voici l'extrait du code concerné:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Y=get(gca,'YLim');
    Ylim=Y(2)-Y(1);
    % réglage pour avoir au minimum 7 lignes de grilles
    set(gca,'YLim',[Y(1)-Ylim*0.05 Y(2)+Ylim*0.05]);
     if length(get(gca,'ytick')) <= 5
              set(gca,'ytick',[Y(1) : Ylim/5 : Y(2)])
     end
    Le problème est que je force les valeurs des lignes en ordonnée alors que je souhaiterais juste imposer leur quantité et laisser Matlab gérer leurs valeurs.

    Auriez vous une solution?

    Merci

  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 309
    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 309
    Points : 52 901
    Points
    52 901
    Par défaut
    Ton code se simplifie en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Y = get(gca, 'ylim');
    set(gca, 'ytick', linspace(Y(1), Y(2), 7));
    Par contre, je ne comprends pas ta question.
    Quel est précisément le problème avec la solution ci-dessus ?

  5. #5
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Je ne connais pas de solution miracle:
    * Il est possible de récupérer les limites de l'axe, et de la diviser régulièrement, mais du coup les valeurs des ticks sont quelconques (on peut toujours les arrondir).

    * Ou alors partir des ticks fournis par matlab, et en enlever un sur 2 ou plus (mais alors on ne maitrise pas exactement le nombre)

  6. #6
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci de votre aide. En fait, Dut, mon problème vient du fait qu'en utilisant mon code ou le tien (merci au passage) les valeurs des ticks sont justement quelconque alors que par défaut Matlab semble s'ajusté à des valeurs "logiques".

    Vos réponses m'ont donné des idées et je vais tester d'autres choses.

    Merci,

    MaMart

Discussions similaires

  1. [WD-2007] Numérotation automatique des figures
    Par Medde dans le forum Word
    Réponses: 8
    Dernier message: 24/05/2010, 12h20
  2. Réponses: 2
    Dernier message: 23/08/2007, 09h26
  3. Ordonner des vectors
    Par titoine1978 dans le forum SL & STL
    Réponses: 4
    Dernier message: 21/04/2006, 19h12
  4. Ordonnée des données dans un TreeView
    Par LoicH dans le forum C++Builder
    Réponses: 3
    Dernier message: 17/04/2005, 18h08
  5. Word : réglage automatique hauteur de cellules
    Par 120 dans le forum VBA Word
    Réponses: 2
    Dernier message: 16/02/2005, 09h26

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