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 :

axes d'un graphique [Débutant]


Sujet :

MATLAB

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 66
    Points : 43
    Points
    43
    Par défaut axes d'un graphique
    Bonjour,

    je trace un boxplot à partir d'un tableau de cellules.

    J'ai un tableau de cellules a dans lequel je récupère le nom inscrit à une certaine ligne a{1}(cPerimeter ,1) pour le mettre dans ylabel

    J'aimerai y ajouter entre parenthèse le fait que c'est exprimé en um, ce qui donne pour ma part:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ylabel(a{1}(cPerimeter ,1), '(\mum)')
    mais cela ne fonctionne pas, l'erreur est la suivante :
    ??? Error using ==> ylabel at 27
    Incorrect number of input arguments
    
    Error in ==> ylabel at 21
       h = ylabel(gca,varargin{:});
    D'autre part en abscisse, je souhaiterai mettre sous chaque boite a moustache les noms des fichiers en .txt (mais sans le .txt pour le graphe) que je suis allée chercher dans un dossier et que je lis ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd 'D:\Documents and Settings\Mes documents\MATLAB'
    A=ls;
    J'ai regardé avec 'axes '

    En espérant être compréhensible,
    Si quelqu'un a une idée...

    Merci beaucoup de votre aide

  2. #2
    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
    Bonjour,

    On dirait que tu as oublié les crochets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ylabel([a{1}(cPerimeter ,1), '(\mum)'])
    Duf
    Simulink & Embedded Coder

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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Merci beaucoup!

    je viens d'essayer et c'est bien cela mais pourquoi cela met l'intitulé de l'axe sur 2 lignes et non une. J'ai essayé d'enlever la virgule ou non mais cela ne change rien.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    a{1}(cPerimeter ,1) est une cellule, et non une chaine de caractères, tu obtiens alors deux cellules après concaténation, et donc deux lignes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ylabel([a{1}{cPerimeter ,1}, '(\mum)'])

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Super, merci beaucoup pour vos explications qui sont très claires et qui aident beaucoup.

    Concernant l'axe des abscisses, avez-vous une idée?

    Merci d'avance

  6. #6
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cMesLabels = dir('D:\Documents and Settings\Gonon-ger\Mes documents\MATLAB\*.txt');
    [~, cMesLabels  ,~]  =cellfun(@fileparts, {cMesLabels(:).name},'UniformOutput',0);
    set(gca,'XTickLabel',cMesLabels);
    manque éventuellement un tri

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Bonjour,

    merci pour votre réponse. Je n'aurai pas trouvé.

    Lorsque je tape juste votre code (pour voir ce que cela fait), j'obtiens bien un graph vide avec en abscisse la répétition des valeurs de cMesLabels.

    Cependant quand je l'intègre à mon code, cela efface l'ancien axe des abscisses mais ne remet pas le nouveau.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    cMesLabels = dir('D:\Documents and Settings\Mes documents\MATLAB\*.txt');
    [~, cMesLabels  ,~]  =cellfun(@fileparts, {cMesLabels(:).name},'UniformOutput',0);
     
    boxplot(X, G, 'sym', ' ') %j'ai enlevé les outlier avec sym = rien
    set(gca,'XTickLabel',cMesLabels);
    C'est surement une erreur toute simple mais je bloque.

    Merci d'avance

  8. #8
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    autant pour moi j'ai oublier un truc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cMesLabels = dir('D:\Documents and Settings\Gonon-ger\Mes documents\MATLAB\*.txt');
    [~, cMesLabels  ,~]  =cellfun(@fileparts, {cMesLabels(:).name},'UniformOutput',0);
    set(gca,'XTick',1:numel(cMesLabels));
    set(gca,'XTickLabel',cMesLabels);
    enfin un truc du genre

    en gros l'idée est d'associer un libellé (XTickLabel) à une valeur (XTick)
    là j'ai mis un vecteur qui va de 1 au nombre de libellé (donc de fichiers), si c'est pas comme ca que tu as tracé ton résultat, il faut adapter

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Super, ca marche, merci beaucoup

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

Discussions similaires

  1. Modifier la police d'un axe d'un graphique Excel
    Par NooD dans le forum Général VBA
    Réponses: 2
    Dernier message: 09/08/2007, 08h50
  2. V5 : Titre d'un axe dans un graphique
    Par Malala dans le forum Débuter
    Réponses: 2
    Dernier message: 04/07/2007, 12h07
  3. Comment modifier les axes d'un graphique
    Par AC88mm dans le forum MATLAB
    Réponses: 3
    Dernier message: 03/04/2007, 10h34
  4. [CR XI] format numérique sur les axes d'un graphique
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 23/03/2007, 15h20
  5. Mettre des données string sur les axes d'un graphique
    Par Aurore_atmo dans le forum MATLAB
    Réponses: 2
    Dernier message: 06/07/2006, 11h57

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