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 :

[plotyy] Modifier les marqueurs des axes


Sujet :

MATLAB

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 129
    Points : 119
    Points
    119
    Par défaut [plotyy] Modifier les marqueurs des axes
    Bonjour !

    J'ai un petit souci, j'ai un plotyy avec deux courbes qui ont la même abscisse : de 1 à 54.
    Plus précisement, chaque numéro correspond à :
    janvier 1998, février 1998, mars 1998, octobre 1998, novembre 1998, décembre 1998, et ce, pour chaque année jusqu'à 2006.

    Je souhaiterai afficher soit juste l'année soit le libellé entier avec le mois.
    Le problème c'est que j'ai que 6 mois pour chaque année...

    Merci d'avance

  2. #2
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Bonjour, je suis débutant sur Matlab, donc je ne sais pas si mon aide te sera précieuse. Par contre il me semble avoir déjà rencontré un problème similaire au tient.
    Tu dois transformer ton vecteur qui va de 1 à 54 en vecteur de temps. Pour ça il faut utiliser la fonction datenum. Par contre moi à la place de chiffre j'avais une matrice avec une colonne pour les mois et l'autre pour les années, puis j'ai fais quelque-chose comme ça:
    time = datenum(mois,années). Comme ça tu obtiens un vecteur avec un nombre qui correspond au mois de l'année.
    Ensuite tu peux faire le graphique en utilisant la commande datetick.

    Le détail de ces commandes se trouve dans l'aide de Matlab. Tu peux aussi regarder les commandes datevec et datestr, dont je me souvient plus très bien l'utilité mais je crois que c'est bien.
    Voilà, j'espère avoir pu t'aider.

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 129
    Points : 119
    Points
    119
    Par défaut
    Bonjour !

    Merci pour cette réponse mais, en fait, on s'est mal compris je pense.... et mes intentions ont un peu changé...
    pour les 6 premières abscisses je voudrai mettre hiver98-99
    pour les 6 suivantes -> hiver99-00
    les 6 suivantes -> hiver00-01
    etcétera jusqu'à hiver06-07, qui lui, exceptionnellement n'en compte que 3.

    Je suis débutante en Matlab, j'ai essayé plusieurs trucs mais rien ne marche.

    Aidez-moi svp !!!

  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 302
    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 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Il faut modifier les propriétés XTick et XTickLabel de l'objet Axes courant comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    figure
    plot(1:3);
    set(gca,'xtick',1:3,'xticklabel',{'hiver98-99' 'hiver99-00' 'hiver00-01'})
    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
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 129
    Points : 119
    Points
    119
    Par défaut
    Merci pour cette réponse, c'est ce que je cherchais.
    Par contre j'ai un autre souci....
    j'ai 54 étiquettes pour mon abscisse, cela devient donc illisible !
    J'ai fait une rotation mais c'est toujours illisible !
    Il faut savoir que la même étiquette correspond à 6 graduations consécutives.
    Comment puis-je faire pour avoir mon étiquette une seule fois au centre de ses 6 graduations?
    Je sais pas si je me fais bien comprendre...
    je voudrais hiver98-99 en 3
    hiver99-00 en 9
    hiver00-01 en 15
    hiver01-02 en 21
    hiver02-03 en 27
    hiver03-04 en 33
    hiver04-05 en 39
    hiver05-06 en 45
    hiver06-07 en 51

    Est-ce possible??

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    figure
    plot(rand(1,51));
    set(gca,'xtick',3:6:51, ...
    'xticklabel',{'hiver98-99' 'hiver99-00' 'hiver00-01' 'hiver01-02' 'hiver02-03' 'hiver03-04' 'hiver04-05' 'hiver05-06' 'hiver06-07'})
    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)

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 129
    Points : 119
    Points
    119
    Par défaut
    ça marche merci beaucoup !
    Par contre j'ai toujours l'autre abscisse en dessous avec 0, 10, 20, 30, 40, 50
    Je fais comment pour l'enlever?

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 52 884
    Points
    52 884
    Par défaut
    J'avais oublié que tu utilisais PLOTYY... comme cette fonction superpose deux objets Axes, il faut faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    figure
    [ax,h1,h2]=plotyy(1:51,rand(1,51),1:51,rand(1,51));
     
    set(ax(1),'xtick',3:6:51, ...
    'xticklabel',{'hiver98-99' 'hiver99-00' 'hiver00-01' 'hiver01-02' 'hiver02-03' 'hiver03-04' 'hiver04-05' 'hiver05-06' 'hiver06-07'})
     
    set(ax(2),'xtick',[])
    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)

  9. #9
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 129
    Points : 119
    Points
    119
    Par défaut
    MERCI

    J'ai un autre souci mais cette fois-ci sur le titre.
    Il est généré automatiquement et j'ai un problème quand il y a un _ (underscore).
    La lettre suivante se mets à la place du underscore mais en bas par rapport aux autres lettres

  10. #10
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Il faut modifier la propriété Interpreter de l'objet Text crée par la fonction TITLE comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    title('X_1','interpreter','none')
    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)

  11. #11
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 129
    Points : 119
    Points
    119
    Par défaut
    MERCI beaucoup pour cette aide !

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

Discussions similaires

  1. [plotyy] Modifier la couleur des axes
    Par fab08 dans le forum MATLAB
    Réponses: 3
    Dernier message: 08/04/2008, 14h54
  2. Réponses: 4
    Dernier message: 02/05/2007, 21h35
  3. Lire et modifier les propriétés des fichiers Office
    Par SilkyRoad dans le forum Contribuez
    Réponses: 4
    Dernier message: 18/09/2006, 22h25
  4. Réponses: 4
    Dernier message: 05/01/2006, 09h01
  5. [VB.NET] Datagrid : Modifier les headers des colones
    Par burnedsoul dans le forum VB.NET
    Réponses: 9
    Dernier message: 05/11/2005, 11h29

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