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 :

Utilisation de SUBPLOT [Débutant]


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Par défaut Utilisation de SUBPLOT
    bonjour
    j'ai quelques difficultés à comprendre comment marche la fonction subplot.
    voila ce que j'aimerais faire:
    j'ai une fonction qui dépend de deux variables et d'un paramètre
    j'ai configuré les axes pour avoir qq chose qui me convient: echelle titre etiquette des axes...
    quand je veux tracer la fonction pour une seule valeur du paramètre pas de problème, tout marche comme je veux
    ensuite j'aimerais afficher dans une meme figure la fonction pour différentes valeurs du paramètre en gardant mes règlages précédents.
    ce que je fais et qui ne marche pas ():
    h1=subplot(1,2,1)
    puis je réécris tout les propriétés de mes axes avec h (peut être est ce la le probleme??)
    puis je trace ma fonction avec theta1
    et je recommence en mettant des 2 à la place des 1...
    ce que j'obtiens ():
    2 rectangles blancs (subplot 1 et 2) et le graphe pour theta2 qui se balade part dessus!
    si quelqu'un peut m'aider...
    merci beaucoup!!!

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Par défaut
    Salut,

    Désolé mais je n'ai pas tout compris...

    Peux tu mettre ton code (juste l'affichage) ?

    Pour être sûr de ce que tu veux :

    Tu veux afficher autant de courbes que de valeurs de paramètre qui joue un rôle entre deux variables ?
    (2 valeurs de paramètre = 2 graphes dans une même fenêtre)

    Tu ne souhaites pas afficher sur un même graphe plusieurs courbes correspondantes à plusieurs valeurs de ton paramètre ?
    (2 valeurs de paramètre = 1 graphe (2courbes) dans un même fenêtre)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Par défaut
    effectivement ce n'était peut être pas très clair!
    je souhaite visualiser les deux courbes correspondant chacune à une valeur de paramètre dans deux graphes différents mais qu'ils soient cote à cote afin d'en facilité la comparaison.
    mais finalement en m'y remettant ce matin j'ai réussi à afficher plus ou moins ce que je voulais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    h1=subplot(1,2,1);
    % axes('zscale','log');
    % axis square;
    xlabel(h1,'module k_T (unites atomiques)', 'FontSize', 11);
    ylabel(h1,'\theta (angle(k_T,K_T))', 'FontSize', 11);
    % axis([0 vi -pi pi]);
    set(h1,'YTick',(-pi:pi/4:2*pi));
    set(h1,'YtickLabel','-pi| |-pi/2| |0| |pi/2| |pi| |3pi/2| |2pi');
    title(h1,'\Theta=3°','FontSize', 14);
    zlabel(h1,'d\sigma','FontSize', 11);
    grid on
    hold on
    ce qui apparait en commentaire c'est ce que je n'arrive pas à ajouter sans que ça ne veuille plus rien tracer.
    et ensuite je fais la même chose en remplaçant les h1 par des h2 pour le deuxième graphique.
    mes questions ont donc un peu évoluées depuis hier:
    - sais tu quelle synthaxe il faudrait utiliser pour les 3 lignes qui me manquent? surtout l'échelle log
    - n'y a t il pas moyen de fixer au début toutes ces propriétés pour les 2 graphes en même temps?
    quelque chose du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    h1=subplot(1,2,1);
    h2=subplot(1,2,2);
    xlabel([h1 h2],'module k_T (unites atomiques)', 'FontSize', 11);
    mais autrement puisque ça ne marche pas...
    merci d'avance

  4. #4
    Expert confirmé
    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
    Par défaut
    Pour tes lignes en commentaires j'essayerais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    % axes('zscale','log');
    set([h1 h2],'zscale','log');%devrait marcher pour les 2 en même temps
    % axis square;
    axis([h1 h2],'square');%c'est même dans la doc
    En fait à chaque fois que tu utilises une commande, toujours lui donner le handle de l'objet sur lequel tu veux travailler.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Par défaut
    merci pour ta réponse caro95470
    voici ce que j'ai donc écris en suivant tes conseils
    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
    h1=subplot(1,2,1);
    h2=subplot(1,2,2);
    set([h1 h2],'zscale','log');
    axis([h1 h2],'square');
    set([h1 h2],'XLabel','module k_T (unites atomiques)');
    set([h1 h2],'YLabel','\theta (angle(k_T,K_T))');
    set([h1 h2],'YTick',(-pi:pi/4:2*pi));
    set([h1 h2],'YtickLabel','-pi| |-pi/2| |0| |pi/2| |pi| |3pi/2| |2pi');
    set([h1 h2],'ZLabel','d\sigma');
    title(h1,'\Theta=3°','FontSize', 14);
    title(h2,'\Theta=10°','FontSize', 14);
    grid on
    hold on
     
    [kT,theta,dsigma] = exp_kT_th(3*pi/360) ;
    surf(h1,kT,theta,dsigma,log(dsigma)) ;
    shading interp;
     
    [kT,theta,dsigma] = exp_kT_th(10*pi/360) ;
    surf(h2,kT,theta,dsigma,log(dsigma)) ;
    shading interp;
    ce qui dans mon esprit devait me permettre d'obtenir qq chose d'assez similaire pour les deux graphes... mais en fait non!
    si on oublie les X,Y et ZLabel (cf ci dessous): le second (h2) correspond à ce que je demandais + la surface bien coloriée vue de dessus
    par contre pour le premier (h1) c un graphe avec toutes les propriétés par défaut + la courbe qui apparait presque noire car seules le maillage est coloré et la vue est différente de la seconde
    donc la je comprends plus...
    et pour la ligne: set([h1 h2],'XLabel','module k_T (unites atomiques)'); et les autres qu même type, Matlab n'aime pas trop!
    ??? Error using ==> set
    Value must be a handle.
    ce que je ne comprends pas non plus car selon moi [h1 h2] correspondent bien à des handles (rmq:même message d'erreur si on écrit juste h1 ou h2) non?

  6. #6
    Expert confirmé
    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
    Par défaut
    Bon j'ai été un peu vite.
    En fait si on regarde, la propriété *Label des axes renvoie le handle du texte donc il faudrait faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    hxlabels=get([h1 h2],'XLabel');
    set([hxlabels{:}],'string','module k_T (unites atomiques)');
    A adapter pour Y et Z.

    Note : si le hold s'applique apparemment à tous les axes de la figure, ce n'est pas le cas du grid.

    Pour le reste, n'ayant pas la fonction que tu utilises, je ne sais pas.

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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