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 @bar 'group'


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Par défaut plotyy @bar 'group'
    bonjour,
    j'utilise la fonction plotyy sous forme de bar:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [AX,H1,H2]=plotyy(x,[freqSansShaker' freqAvecShaker'],x,abs(diffFreqPercent),@bar, @bar);
    le problème est que le deuxième set de données se superpose au premier. Y a-t-il la possibilité de passer à la fonction bar le paramètre 'group' comme dans l'utilisation de la fonction bar seule?
    Merci

  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
    J'ai du mal à comprendre mais si tu faisais deux fonctions "plotyy" avec un "hold on" pour avoir tout sur la même figure, peut-être que matlab s'amuserait à faire deux groupes...

    Christophe

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Par défaut
    Je ne crois pas que le hold on soit possible. Je te mets tout le code pour être plus clair:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    x=1:12;
    freqAvecShaker=[645.56 1116.1 1530.2 2204.9 2211.6 2577.8 2578.0 4452.8 4532.3 5731.9 5732.1 9370.2];
    freqSansShaker=[649.78 1116.1 1508.2 2193.9 2202.2 2577.7 2577.8 4291.5 4300.6 5731.5 5731.7 9336.0];
    diffFreqPercent=((freqAvecShaker-freqSansShaker)./freqSansShaker)*100;
    [AX,H1,H2]=plotyy(x,[freqSansShaker' freqAvecShaker'],x,abs(diffFreqPercent),@bar, @bar);
    en gros j'ai deux sets de valeurs (freqAvecShaker et freqSansShaker) à comparer (deux bars une à coté de l'autre avec la même échelle) et j'aimerais rajouter un troisième bar à coté avec la différence relative (diffFreqPercent) avec la deuxième échelle en %.
    Actuellement la troisième bar en % se superpose aux deux autres et moi je l'aimerais à côté.

    J'espère que je suis plus clair maintenant.

  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 317
    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 317
    Par défaut
    Je ne sais pas si il existe une solution plus simple, mais il est toujours possible de manipuler les objets Patch créés par la fonction BAR :

    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
    x=1:12;
    freqAvecShaker=[645.56 1116.1 1530.2 2204.9 2211.6 2577.8 2578.0 4452.8 4532.3 5731.9 5732.1 9370.2];
    freqSansShaker=[649.78 1116.1 1508.2 2193.9 2202.2 2577.7 2577.8 4291.5 4300.6 5731.5 5731.7 9336.0];
    diffFreqPercent=((freqAvecShaker-freqSansShaker)./freqSansShaker)*100;
    [AX,H1,H2]=plotyy(x,[freqSansShaker' freqAvecShaker'],x,abs(diffFreqPercent),@bar, @bar);
     
     
    h = findobj('type','patch');
     
    v1 = get(h(1),'vertices');
    v2 = get(h(2),'vertices');
    v3 = get(h(3),'vertices');
     
    v1(:,1) = v2(:,1)+v2(1)-v3(1);
     
    set(h(1),'vertices',v1,'facecolor','g')
    C'est l'idée...

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    Une version un peu plus propre avec les barres bien centrées :

    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
    h = findobj('type','patch');
     
    v1 = get(h(1),'vertices');
    v2 = get(h(2),'vertices');
    v3 = get(h(3),'vertices');
     
    v1(:,1) = v2(:,1)+v2(1)-v3(1);
     
    c = (v2(4,1)+v2(3,1))/2-1;
     
    v1(:,1) = v1(:,1)-c;
    v2(:,1) = v2(:,1)-c;
    v3(:,1) = v3(:,1)-c;
     
    set(h(1),'vertices',v1,'facecolor','g')
    set(h(2),'vertices',v2)
    set(h(3),'vertices',v3)

  6. #6
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Par défaut
    c'est même plus que l'idée, c'est exactement ça. merci beaucoup

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

Discussions similaires

  1. Mettre une scroll bar dans un group
    Par Leniouns dans le forum SWT/JFace
    Réponses: 42
    Dernier message: 10/07/2013, 13h24
  2. [RaveReport] - Bloquer groupe sur une page
    Par muaddib dans le forum Rave
    Réponses: 3
    Dernier message: 25/02/2003, 16h21
  3. gestion des groupes
    Par muaddib dans le forum QuickReport
    Réponses: 3
    Dernier message: 31/12/2002, 11h01
  4. outlook bar
    Par camis dans le forum Composants VCL
    Réponses: 3
    Dernier message: 13/08/2002, 17h13

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