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 :

Positionnement par rapport à quoi?


Sujet :

MATLAB

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 113
    Points : 80
    Points
    80
    Par défaut Positionnement par rapport à quoi?
    Bonjour,

    Je ne comprends pas Matlab lorsque je veux positionner des subplot, des cadre de texte (text(....)). Je ne sais vraiment pas par rapport à quoi il se réfère.
    text(x,y,'texte') place 'texte' aux coordonnées (x;y). Ok ça marche quand c'est dans la suite des choses.
    Dans monc as je trace 2 subplots. Je modifie la taille et la position puis je veux inscrire une ligne de texte mais là impossible de lui définir la position. j'ai eu aussi pas mal de soucis pour définir la position de suplabel.
    Quelqu'un pourrait-il me dire comment fonctionne Matlab à ce sujet là?
    Et comment puis-je faire pour replace run obkjet par rapport un à un autre? (j'ai essayé le get(subplot211Handle,'position')+Dx, etc... mais c'est du grand n'importe quoi comme résultat

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    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 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Je t'avais déjà plus ou moins répondu, non ?

    => http://www.developpez.net/forums/d80...ique-subplots/

    La position des objets est relative à celle de leur parent (généralement le coin inférieur gauche)

    => http://briot-jerome.developpez.com/m...oriels/guiobj/
    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)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 113
    Points : 80
    Points
    80
    Par défaut
    salut!

    Oui plus ou moins. C'est pour cette raison, et merci encore, que j'ai pu redimensionner et positionner mes subplots comme je voulais
    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
    figure('name','BIAS','numbertitle','off','units','normalized','outerposition',[0 0 1 1]);
        Subplot211Handle=subplot(2,1,1);
            plot(TemperatureMeaning,K0Measured*1e3,'-','color',[192 192 255]/255,'linewidth',2);hold on; plot(TemperatureMeaning,K0Modelised*1e3,'-','color',[192 255 192]/255,'linewidth',2);
            hold on;
            plot(TemperatureMeaning,K0Measured*1e3,'color',[0 0 255]/255,'markersize',10,'linewidth',3);hold on;plot(TemperatureMeaning,K0Modelised*1e3,'color',[0 255 0]/255,'markersize',10,'linewidth',3);
            set(gca,'xticklabel','');               % delete the x tick label
            grid on;
            title('modeling','fontsize',25,'fontweight','bold');
            ylabel('K_{0} [mg]','fontsize',20);
            legend('K_{0} measured','K_{0} modelised','location','best');
            set(gca,'fontsize',20);
        Subplot212Handle=subplot(2,1,2);
            plot(TemperatureMeaning,K0residue*1e6,'-','color',[255 192 192]/255,'linewidth',2);
            hold on;
            plot(TemperatureMeaning,K0residue*1e6,'color',[255 0 0]/255,'markersize',10,'linewidth',3);
            grid on;
            title('modeling residue','fontsize',25,'fontweight','bold');
            ylabel('\epsilonK_{0} [µg]','fontsize',20);
            set(gca,'fontsize',20);
        [SupTitleAxis,SupTitleHandle]=suplabel(sprintf('K_{0} VS temperature of %s ',MEMSName) ,'t');
            set(SupTitleHandle,'fontsize',35,'fontweight','bold');
        [SupXlabelAxis,SupXlabelHandle]=suplabel('Temperature [°C]' ,'x');
            set(SupXlabelHandle,'fontsize',20);
        NewSubplotHeight=((get(SupTitleHandle,'position')*[0;1;0])-((get(SupTitleHandle,'extent')*[0;0;0;1])/2)-(get(SupXlabelHandle,'position')*[0;1;0])-get(SupXlabelHandle,'extent')*[0;0;0;1]/2)/2*0.95;
        set(Subplot211Handle,'outerposition',[get(Subplot211Handle,'outerposition')*[1;0;0;0] get(Subplot211Handle,'outerposition')*[0;1;0;0] get(Subplot211Handle,'outerposition')*[0;0;1;0] NewSubplotHeight]);
        set(Subplot212Handle,'outerposition',[get(Subplot212Handle,'outerposition')*[1;0;0;0] get(Subplot212Handle,'outerposition')*[0;1;0;0] get(Subplot212Handle,'outerposition')*[0;0;1;0] NewSubplotHeight]);
        text(0,0.5,{sprintf('slope_{max}=%dµg/°C',round(max(abs(polyval(polyder(flipud(K0Parameter)),Temperature)))*1e6));sprintf('K_{0}(T)=%+.3e%+.3e.T%+.3e.T^{2}%+.3e.T^{3}%+.3e.T^{4} [mg]',K0Parameter(1)*1e3,K0Parameter(2)*1e3,K0Parameter(3)*1e3,K0Parameter(4)*1e3,K0Parameter(5)*1e3)},'verticalalignment','top','fontsize',15);
        text(0,max(get(Subplot212Handle,'ytick')),sprintf('\\sigma(\\epsilonK_{0})=%dµg',round(std(K0residue)*1e6)),'verticalalignment','top','fontsize',15);
        clear NewSubplotHeight;
        set(Subplot212Handle,'outerposition',[get(Subplot212Handle,'outerposition')*[1;0;0;0] get(SupXlabelHandle,'position')*[0;1;0]+(get(SupXlabelHandle,'extent')*[0;0;0;1]) get(Subplot212Handle,'outerposition')*[0;0;1;0] get(Subplot212Handle,'outerposition')*[0;0;0;1]]);
    	set(Subplot211Handle,'outerposition',[get(Subplot211Handle,'outerposition')*[1;0;0;0] get(Subplot212Handle,'outerposition')*[0;1;0;0]+get(Subplot212Handle,'outerposition')*[0;0;0;1]-get(Subplot212Handle,'tightinset')*[0;0;0;1]*0.5 get(Subplot211Handle,'outerposition')*[0;0;1;0] get(Subplot211Handle,'outerposition')*[0;0;0;1]]);
        orient landscape;
    Voici mon code et j'aimerais voir apparaitre mon texte en haut à gauche de chaque subplot mais ça part un peu n'importe où.

  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 304
    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 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Si je comprends bien, les objets Text appartiennent à un objet Axes dont la propriété Units est à Normalized.

    Ce qui signifie que la position de ces objets Text est donnée dans une plage de valeur [0 1] (en x et en y). La coordonnée (0,0) représentant le coin inférieur gauche et la coodonnée (1,1) représente le coin supérieur droit.

    Mais rien n'empêche de mettre des valeurs inférieures à 0 ou supérieur à 1 pour placer les objets Text "en dehors" de leur objet Axes parent
    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)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 113
    Points : 80
    Points
    80
    Par défaut
    Bonjour,

    Selon dans mon code que je le mette dans la partie "subplot" ou pas c'est le cas mais puisqu'ensuite je déplace cette fenêtre et la redimensionne, le texte n'est plus vraiment à la bonne place. C'est pour cette raison que je le fais ensuite mais c'est là que les coordonnées d'origine ne sont plus celles de l'objet axe mais une autre (laquelle?).
    Bref, pas si facile que ça.
    J'ai vu dans ton code sur l'explication de outerposition, etc... que tu dessinais à chaque fois une fenêtre invisible pour donner une origine identique je vais voir avec ça mais c'est tiré par les cheveux...
    Si t'as une solution "plus élégante" ou plus académique ce serait cool.

    Thank you.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 113
    Points : 80
    Points
    80
    Par défaut
    Tada...
    bon! Ça fonctionne c'est cool non sans s'être bagarré pour essayé de faire un truc propre
    Merci beaucoup Dut


    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
    36
    37
    figure('name','BIAS','numbertitle','off','units','normalized','outerposition',[0 0 1 1]);
        Subplot211Handle=subplot(2,1,1);
            plot(TemperatureMeaning,K0Measured*1e3,'-','color',[192 192 255]/255,'linewidth',2);hold on; plot(TemperatureMeaning,K0Modelised*1e3,'-','color',[192 255 192]/255,'linewidth',2);
            hold on;
            plot(TemperatureMeaning,K0Measured*1e3,'+','color',[0 0 255]/255,'markersize',10,'linewidth',3);hold on;plot(TemperatureMeaning,K0Modelised*1e3,'+','color',[0 255 0]/255,'markersize',10,'linewidth',3);
            set(gca,'xticklabel','');               % delete the x tick label
            grid on;
            title('modeling','fontsize',25,'fontweight','bold');
            ylabel('K_{0} [mg]','fontsize',20);
            legend('K_{0} measured','K_{0} modelised','location','best');
            set(gca,'fontsize',20);
        Subplot212Handle=subplot(2,1,2);
            plot(TemperatureMeaning,K0residue*1e6,'-','color',[255 192 192]/255,'linewidth',2);
            hold on;
            plot(TemperatureMeaning,K0residue*1e6,'+','color',[255 0 0]/255,'markersize',10,'linewidth',3);
            grid on;
            title('residue','fontsize',25,'fontweight','bold');
            ylabel('\epsilonK_{0} [µg]','fontsize',20);
            set(gca,'fontsize',20);
        [SupTitleAxis,SupTitleHandle]=suplabel(sprintf('BIAS (K_{0}) of %s ',MEMSName) ,'t');
            set(SupTitleHandle,'fontsize',35,'fontweight','bold');
        [SupXlabelAxis,SupXlabelHandle]=suplabel('Temperature [°C]' ,'x');
            set(SupXlabelHandle,'fontsize',20);
        InvisibleAxis=axes('units','normalized','position',[0 0 1 1],'visible','off','nextplot','add','xlim',[0 1],'ylim',[0 1],'zlim',[0 1]);          % draw an invisible axis to place the different object
        set(SupTitleHandle,'position',[0.5 1 0]);
    	InvisibleAxis=axes('units','normalized','position',[0 0 1 1],'visible','off','nextplot','add','xlim',[0 1],'ylim',[0 1],'zlim',[0 1]);          % draw an invisible axis to place the different object
        set(SupXlabelHandle,'position',[0.5 0 0]);
        NewSubplotHeight=((1-((get(SupTitleHandle,'extent')*[0;0;0;1])/2)-((get(SupXlabelHandle,'extent')*[0;0;0;1])/2))/2)*0.95;
    	set(Subplot211Handle,'outerposition',[get(Subplot211Handle,'outerposition')*[1;0;0;0] get(Subplot211Handle,'outerposition')*[0;1;0;0] get(Subplot211Handle,'outerposition')*[0;0;1;0] NewSubplotHeight]);
        set(Subplot212Handle,'outerposition',[get(Subplot212Handle,'outerposition')*[1;0;0;0] get(Subplot212Handle,'outerposition')*[0;1;0;0] get(Subplot212Handle,'outerposition')*[0;0;1;0] NewSubplotHeight]);
        clear NewSubplotHeight;
        set(Subplot212Handle,'outerposition',[get(Subplot212Handle,'outerposition')*[1;0;0;0] get(SupXlabelHandle,'extent')*[0;0;0;1] get(Subplot212Handle,'outerposition')*[0;0;1;0] get(Subplot212Handle,'outerposition')*[0;0;0;1]]);
    	set(Subplot211Handle,'outerposition',[get(Subplot211Handle,'outerposition')*[1;0;0;0] get(Subplot212Handle,'outerposition')*[0;1;0;1]-get(Subplot212Handle,'tightinset')*[0;0;0;1]*0.5 get(Subplot211Handle,'outerposition')*[0;0;1;0] get(Subplot211Handle,'outerposition')*[0;0;0;1]]);
    	InvisibleAxis=axes('units','normalized','position',[0 0 1 1],'visible','off','nextplot','add','xlim',[0 1],'ylim',[0 1],'zlim',[0 1]);          % draw an invisible axis to place the different object
        text(get(Subplot211Handle,'position')*[1;0;0;0],get(Subplot211Handle,'position')*[0;1;0;1],{sprintf('  slope_{max}=%dµg/°C',round(max(abs(polyval(polyder(flipud(K0Parameter)),Temperature)))*1e6));sprintf('  K_{0}(T)=%+.3e%+.3e.T%+.3e.T^{2}%+.3e.T^{3}%+.3e.T^{4} [mg]',K0Parameter(1)*1e3,K0Parameter(2)*1e3,K0Parameter(3)*1e3,K0Parameter(4)*1e3,K0Parameter(5)*1e3)},'verticalalignment','top','fontsize',15);
        text(get(Subplot212Handle,'position')*[1;0;0;0],get(Subplot212Handle,'position')*[0;1;0;1],sprintf('  \\sigma(\\epsilonK_{0})=%dµg',round(std(K0residue)*1e6)),'verticalalignment','top','fontsize',15);
        orient landscape;

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/06/2012, 09h31
  2. Fenetre positionnée par rapport à un contrôle
    Par distil dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 16/11/2009, 10h15
  3. Positionnement par rapport à la taille de l'élément parent
    Par punto dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 21/07/2009, 23h46
  4. background positionné par rapport à l'écran et non au cadre
    Par muaddibx dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 30/03/2007, 11h48
  5. [css] Positionnement d'une img par rapport a une autre img
    Par dark_vidor dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 26/02/2006, 00h07

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