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 :

Problème de titres et légendes sur un graphe


Sujet :

MATLAB

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 542
    Points : 187
    Points
    187
    Par défaut Problème de titres et légendes sur un graphe
    Bonjour,

    J'ai tracé une fonction de transfert. J'obtiens bien ce que je veux mis à part le titre et les légendes pour les axes.

    Voici mon code :

    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
    % Définition des paramètres
     
    clear all;
    m=410;
    k=100;
    c=10;
    wp=sqrt(k/m);
    lambda=c/(2*sqrt(k*m));
     
    % Définition de la fonction de transfert
     
    H1=tf([c/k 1],[m/k c/k 1]);
     
    % Tracé de la fonction de transfert
     
    P = bodeoptions;      
     
    Title('Tracé fonction deuxième ordre');
    XLabel('pulsation'); 
    YLabel('Gain statique'); 
    P.FreqUnits = 'rad/s';
    P.MagUnits ='abs';
    P.MagScale = 'linear'; 
    P.FreqScale = 'linear';
    P.PhaseVisible = 'off'; 
    P.Xlim={[0 3]};
    P.Ylim={[0 10]};
    h = bodeplot(H1,P);
    Quelle ligne de code est-ce que je dois changer pour que le titre et les légendes des axes soient pris en compte ?

    Merci pour votre aide.

  2. #2
    Membre éclairé Avatar de tubaas
    Homme Profil pro
    Acousticien
    Inscrit en
    Août 2009
    Messages
    641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Acousticien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 641
    Points : 825
    Points
    825
    Par défaut
    salut
    tu as essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    P.Title('Tracé fonction deuxième ordre');
    P.XLabel('pulsation'); 
    P.YLabel('Gain statique');
    ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 542
    Points : 187
    Points
    187
    Par défaut
    Oui j'ai essayé mais çà n'a pas rien fait.

  4. #4
    Membre éclairé Avatar de tubaas
    Homme Profil pro
    Acousticien
    Inscrit en
    Août 2009
    Messages
    641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Acousticien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 641
    Points : 825
    Points
    825
    Par défaut
    salut
    je n'ai pas toutes ces fonctions pour les diagramme de bode alors je ne peux pas tester mais peut-être tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(gca, 'Title', Title, 'XLabel', XLabel, 'YLabel', YLabel);
    ou en déplaçant tes trois lignes après le tracé avec bodeplot.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 542
    Points : 187
    Points
    187
    Par défaut
    J'ai essayé mais je n'ai toujours pas de solutions.
    Merci d'avance pour votre aide.
    J'aimerais avoir un beau graphique avec le bon nom pour mes axes!!!

  6. #6
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    As-tu essayé avec SETOPTIONS?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    h = bodeplot(H1,P);
    setoptions(h, 'Title', 'Tracé fonction deuxième ordre');
    Ce qui doit être équivalent à ce que Tubaas a proposé...
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 542
    Points : 187
    Points
    187
    Par défaut
    Bonjour,

    J'ai fait le code suivant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    P = bodeoptions;      
    P.FreqUnits = 'rad/s';
    P.MagUnits ='abs';
    P.MagScale = 'linear'; 
    P.FreqScale = 'linear';
    P.PhaseVisible = 'off'; 
    P.Xlim={[0 3]};
    P.Ylim={[0 10]};
    h = bodeplot(H1,H2,H3,P);
    Title('Tracé fonction deuxième ordre');
    XLabel('pulsation'); 
    YLabel('Gain statique');

    En mettant les 3 lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Title('Tracé fonction deuxième ordre');
    XLabel('pulsation'); 
    YLabel('Gain statique');
    [/CODE] après le bodeplot.

    Maintenant, j'ai bien le titre et l'axe x. Bizarrement seul l'axe y ne s'affiche pas????

    Merci encore pour votre aide

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    C'est marrant quand même. Tu as un problème, on te donne deux réponses et tu ne les teste même pas.

    La méthode de Tubaas fonctionne en la modifiant juste un peu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    P.Title.String='Tracé fonction deuxième ordre';
    P.XLabel.String='pulsation'; 
    P.YLabel.String={'Gain statique' 'autre'};
    Et la méthode avancé par duf fonctionne aussi en faisant également quelques modifications. Un peu plus compliqués certes...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    h = bodeplot(H1,P);
    A=getoptions(h, 'Title');
    A.String='coucou';
    setoptions(h,'Title',A);
    ylabel ne s'affiche pas tout simplement parce que tu définis seulement 1 valeur en y alors que le diagramme de Bode a deux graphes. Matlab attend donc deux valeurs de ylabel en structure et non une seule.
    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
     
    % Définition des paramètres
     
    clear all;
    m=410;
    k=100;
    c=10;
    wp=sqrt(k/m);
    lambda=c/(2*sqrt(k*m));
     
    % Définition de la fonction de transfert
     
    H1=tf([c/k 1],[m/k c/k 1]);
     
    % Tracé de la fonction de transfert
     
    P = bodeoptions;      
     
    P.FreqUnits = 'rad/s';
    P.MagUnits ='abs';
    P.MagScale = 'linear'; 
    P.FreqScale = 'linear';
    P.PhaseVisible = 'off'; 
    P.title.String='Ca alors';
    P.xlabel.String='c''est cool';
    P.ylabel.String={'ca fonctionne' 'quand on teste'};
    P.Xlim={[0 3]};
    P.Ylim={[0 10]};
    h = bodeplot(H1,P);

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 542
    Points : 187
    Points
    187
    Par défaut
    Super merci pour ta réponse.
    Tu m'as appris deux choses notamment le string que je ne mettais lors de la définition d'une chaîne de caractères et le fait que bodeplot attend deux valeurs en y.

Discussions similaires

  1. Problème de titre de légende
    Par carine.ey dans le forum Webi
    Réponses: 5
    Dernier message: 30/05/2012, 10h32
  2. Légende sur le graphe avec
    Par med.khalifi dans le forum Interfaces Graphiques en Java
    Réponses: 0
    Dernier message: 15/02/2012, 15h33
  3. [XL-2007] Légende personnalisée sur un graphe 3D (Surface)
    Par redvivi dans le forum Excel
    Réponses: 1
    Dernier message: 05/04/2010, 15h58
  4. Problème de dimension pour affichage sur graph
    Par Marc29 dans le forum LabVIEW
    Réponses: 4
    Dernier message: 17/06/2008, 10h55
  5. Réponses: 5
    Dernier message: 27/08/2003, 11h45

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