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

Interfaces Graphiques Discussion :

Pourquoi un "plot" modifie les proprietes de l'objet Axes [Débutant]


Sujet :

Interfaces Graphiques

  1. #1
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut Pourquoi un "plot" modifie les proprietes de l'objet Axes
    Bonjour

    Juste une petite interrogation.

    Je crée une figure, j'y crée un objet Axes donc je contrains les XLim et Ylim, je vais un plot de mon vecteur, et ô surprise, les Xlim ne sont plus respectés : j'ai du blanc après ma courbe. Pourtant la taille donnée dans Xlim correspond à la taille de mon vecteur. Je me retrouve obligé de faire des set de XLim et Ylim après le plot, je trouve ça dommage. J'ai essayé un passant le handle vers l'objet Axes en paramètre du plot, ça me donne le même résultat.

    Merci


    EDIT : les Ylim ne semblent pas respectées non plus...

  2. #2
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Juin 2009
    Messages : 53
    Points : 57
    Points
    57
    Par défaut
    Tu pourrais donner ton code, parce que là, je ne vois pas du tout où ça cloche !!
    J'ai fait ça pas mal de fois, et ça marchait très bien...donc bon.

    Bon courage

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Tiens, le voilà

    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
    Visualisation = rand(tailleVisualisation,2)./10;
     
    %creation du vecteur des indices
    indices = 1:1:tailleVisualisation;
     
    % Figure principale
    hFigVisu = figure(...
        'units','pixels',...
        'position',[300 100 800 600],...
        'color',[0.128 0.5 0.9],...
        'name','Visualisation',...
        'numbertitle','off',...
        'MenuBar','figure',...
        'tag','FigVisu');
     
    % Le fils est un objet AXES
    hAxesVisu = axes(...
        'Ylim',[-0.5 0.5],...
        'Xlim',[indices(1) indices(end)],...
        'tag','AxesVisu');
     
    % Le petit-fils est un objet de type LINE
    % C'est ici le "plot" de Visualisation
    plot(hAxesVisu,Visualisation);
    hPlotVisu = get(hAxesVisu,'children');
     
    pause
     
    % Les specifications ds limites des axes lorsque de l'appel a Axes sont
    % detruites par l'appel a plot, il faut donc le faire ici
    set(hAxesVisu,'Xlim',[indices(1) indices(end)]);
    set(hAxesVisu,'Ylim',[-0.5 0.5]);
     
     
    drawnow

    En l'éxécutant, tu pourras voir ce qu'il se passe avant et après le "pause".

  4. #4
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Juin 2009
    Messages : 53
    Points : 57
    Points
    57
    Par défaut
    Autant pour moi, le plot a l'air d'écraser les propriétés de ton axe. En fait, il met la taille a priori appropriée.
    Il faut lui imposer comme tu le fais après le plot, si ça ne te convient pas. (Ce que je faisais en fait c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    figure(1);
        ylim([-30 20]);
        bar(n(1:12),y(1:12),'y');
    dans une fonction à part, que j'appelle dans le code du gui... )

    Désolé de ne t'avoir point aidé.

    Bon courage

  5. #5
    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
    Pour que les axes gardent leurs propriétés tu es obligé de mettre un HOLD ON après leur création :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    hAxesVisu = axes(...
        'Ylim',[-0.5 0.5],...
        'Xlim',[indices(1) indices(end)],...
        'tag','AxesVisu');
    hold on
    Par défaut, les objets Axes se redimensionnent toujours automatiquement.
    Règles du Forum

    Adepte de la maïeutique

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Contrairement aux antibiotiques....

    C'est plus propre de faire un hold on que plusieurs set, merci du tuyau.


    Merci à vous

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/08/2006, 16h43
  2. Réponses: 4
    Dernier message: 05/01/2006, 09h01

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