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 :

Plot deux axes differents sur meme figure (scatter+stairs)


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 49
    Points : 19
    Points
    19
    Par défaut Plot deux axes differents sur meme figure (scatter+stairs)
    Bonjour,
    j'ai cherche sur ce forum une reponse à ma question, sans succès, ni perseverance .....

    du coup je créé un petit post, ca pourra tjrs servir à d'autres.

    Comment fait-on pour plotter sur une meme figure deux axes Y différents avec une fction représentée en scatter et l'autre en stairs.

    Merci pr votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    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 318
    Points : 52 958
    Points
    52 958
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    x = linspace(-2*pi,2*pi,40);
     
    figure
     
    stairs(x,sin(x))
     
    ax = copyobj(gca,gcf);
     
    scatter(ax,x,rand(1,numel(x)));
    set(ax,'color','none','yaxislocation','right','xtick',[]);

  3. #3
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    Bonjour,

    Ben je pense directement à hold, mais bon, il faut expliquer un peu plus !

    Pour lecture, je te conseil ce lien :

    http://www.developpez.net/forums/d89...s-meme-graphe/

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 49
    Points : 19
    Points
    19
    Par défaut
    Salut DUT,

    ca ne marche pas trop ce que tu viens de m'envoyer.

    Pour etre plus précis, j'ai deux fctions (y1 y2) dépendant de la meme variable x

    J'aimerais plotter une des deux en stairs et l'autre en scatter suivant deux axes y differents mais le meme x, et bien sur tout ca sur le meme plot.

    merci

  5. #5
    Expert confirmé
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Points : 4 039
    Points
    4 039
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    x = linspace(-2*pi,2*pi,40);
    y1 = sin(x)
    y2 = rand(1,numel(x));
    
    plotyy(x,y1,x,y2,'stairs','scatter')

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 49
    Points : 19
    Points
    19
    Par défaut
    Bonjour,
    j'ai donc essayé plotyy, ca marche plutot bien mais j'ai des problemes quant à la définition personnelle des axes. Je n'arrive pas à modifier les xtick et xticklabel.
    Merci de votre aide.
    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
    subplot(4,2,8)
    for madrid=1:size(mat_light,1)
            if mat_light(madrid,2)~=0
    [AX,H1,H2]=plotyy(mat_light(madrid,1),mat_light(madrid,2),mat_light(madrid,1),mat_light(madrid,3),'stairs','scatter');
    hold on
            end
    end
    set(H1,'color','b','LineWidth',2,'Xtick',[0 24 48 72 96 120 144 168 192 216 240],'xticklabel',{'0','24','48','72','96','120','144','168','192','216','240'},'fontsize',10)
     
    %set(AX(1),)
    %set(AX(1),'xticklabel',{'0','24','48','72','96','120','144','168','192','216','240'},'fontsize',10)
     
    set(get(AX(1),'Ylabel'),'String','Events amounts') 
    set(get(AX(2),'Ylabel'),'String','Event longitude')

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 49
    Points : 19
    Points
    19
    Par défaut
    De plus, est-il possible d'avoir l'axe y pour les stairs en semi-log ???

  8. #8
    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 : 39
    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
    si je me réfère à cela
    [AX,H1,H2] = PLOTYY(...) returns the handles of the two axes created in
    AX and the handles of the graphics objects from each plot in H1
    and H2. AX(1) is the left axes and AX(2) is the right axes.
    'XTickLabel' et 'XTick' étant des propriétés des aves, il faut les mettre dans AX(1) ou AX(2)
    ie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set(H1,'color','b','LineWidth',2)
    set(AX(1),'Xtick',[0 24 48 72 96 120 144 168 192 216 240],'xticklabel',{'0','24','48','72','96','120','144','168','192','216','240'},'fontsize',10)
    pour être certain des propriétés que tu peux régler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set(AX(1))
    set(AX(2))
    set(H1)
    set(H2)
    et reprenant ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set(get(AX(1),'Ylabel'),'String','Events amounts') 
    set(get(AX(2),'Ylabel'),'String','Event longitude')
    cela ne marche-t-il pas?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set(AX(1),'Ylabel','Events amounts') 
    set(AX(2),'Ylabel','Event longitude')
    PS: tu as aussi les propriétés (pour les axes) 'XScale' ou 'Yscale' qui doivent pouvoir t'être utiles

Discussions similaires

  1. [Oracle] Afficher deux requêtes differents sur meme table
    Par Leroychama dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 20/08/2014, 12h06
  2. deux listes Autocompletion sur meme page
    Par serna dans le forum Langage
    Réponses: 6
    Dernier message: 24/04/2013, 16h40
  3. [1.x] affiche de traitement de deux module differant sur l'un des deux
    Par benakacha dans le forum Symfony
    Réponses: 1
    Dernier message: 17/09/2009, 15h48
  4. ouvrir deux popup differents sur la même page ?
    Par King_T dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/05/2008, 21h19
  5. Avoir deux axes 'x' sur un graphique
    Par schutz dans le forum MATLAB
    Réponses: 1
    Dernier message: 09/07/2007, 12h40

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