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 :

Comment casser l'axe des Y?


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Comment casser l'axe des Y?
    Bonjour,

    Je suis actuellement en thèse de biologie marine et dans un de mes travaux, je souhaiterais représenter sur une même fenêtre graphique comment, dans un système de MPAs, la mortalité par pêche (Feffective) et les captures par recrue (Yield-Per-Recruit) varient dans l'espace pour trois types de populations marines: sous-exploitées, surexploitées et pleinement exploitées (en faisant deux subplots).

    J'ai fait les graphes, ils me satisfont; mais une des courbes de Feffective (bleue, correspondant à une population surexploitée = plot p7) prend des valeurs supérieures à toutes les autres... Je souhaiterais donc faire un "BreakYaxis".

    J'ai trouvé des codes sur Internet mais ils ne me satisfont pas... Par conséquent, pourriez-vous regarder le code donné à la fin de ce message et me dire comment je pourrais casser l'axe des Y pour le 1er subplot, entre les valeurs 0.4 et 0.8??

    Merci beaucoup d'avance!


    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % This script makes plots of the YPR(f) function 
    % (Yield-Per-Recruit function) for the canary rockfish population
    % (adult movement within a home range) along a linear coastline
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
     
    %% Biological data for the canary rockfish case
    M=0.06; %Classical value used for Canary Rockfish (except for old females; Methot & Stewart 2005)
    aF=5; % aF for Canary Rockfish (Methot & Stewart 2005)
    a50=8; % a50 for Canary Rockfish (Methot & Stewart 2005)
    k=0.183; % k for Canary Rockfish (Methot & Stewart 2005)
    alpha=3.03; % alpha for Canary Rockfish (Methot & Stewart 2005)
    beta=4.1416;% beta for a related species, Sebastes alutus (Phillips 1964, Gunderson 1977) 
     
    %% Set basic tolerance for integrals
    tol = 1e-5;
     
    %% List of figures
    if ~exist( 'Fig1', 'var' ), Fig1=figure; else, figure(Fig1); end
     
    %% Synthesis plot
     
    X = 1:1:1000; 
    nu_X = [ones(1,200) 1:-0.005:0.005 zeros(1,200) 0.005:0.005:1 ones(1,200)];
     
    % Case 1: Overexploited population
    myflepmix_X_1 = ones(1,1000);
    for i = 1:1000 
    myflepmix_X_1(i) = FLEPmix(1,myflep_1,nu_X(i));
    myfmix_X_1(i) =  interp1(FLEP_range3, f_range3, myflepmix_X_1(i));
    YPR_mix_X_1(i) = YPR_of_f3(myfmix_X_1(i),M,alpha,aF,k);
    end
     
    % Case 2: Underexploited population
    myflepmix_X_2 = ones(1,1000);
    for i = 1:1000 
    myflepmix_X_2(i) = FLEPmix(1,myflep_2,nu_X(i));
    myfmix_X_2(i) =  interp1(FLEP_range3, f_range3, myflepmix_X_2(i));
    YPR_mix_X_2(i) = YPR_of_f3(myfmix_X_2(i),M,alpha,aF,k);
    end
     
    % Case 3: Fully exploited population
    myflepmix_X_3 = ones(1,1000);
    for i = 1:1000 
    myflepmix_X_3(i) = FLEPmix(1,myflep_3,nu_X(i));
    myfmix_X_3(i) =  interp1(FLEP_range3, f_range3, myflepmix_X_3(i));
    YPR_mix_X_3(i) = YPR_of_f3(myfmix_X_3(i),M,alpha,aF,k);
    end
     
    figure(Fig1)
     
    % Plot first Feffective along the coastline
    subplot(2,1,1)
     
    rect1 = rectangle('position',[300,0,400,1],'Facecolor',[0.8 0.8 0.8],'EdgeColor',[1 1 1])
     
    hold on
     
    dh16 =plot([300,300],[0,0.35],'Color',[0.8 0.8 0.8]);
     
    dh17 =plot([700,700],[0,0.35],'Color',[0.8 0.8 0.8]);
     
    dh18 =plot([0,1000],[0,0],'-','Color',[0 0 0]);
     
    p8 = plot( X, myfmix_X_2, 'linewidth', 1.5, 'color', 'r' );
     
    p9 = plot( X, myfmix_X_3, 'linewidth', 1.5, 'color', [0 0.5 0] );
     
    p7 = plot( X, myfmix_X_1, 'linewidth', 1.5, 'color', 'b' );
     
    hold off
     
    axis([0,1000,0,1])
    set(gca,'fontsize',12)
    set(gca,'xtick',[300,700], 'xticklabel',{'',''},...
        'fontsize',11)
    ylabel( 'Feffective', 'fontsize', 14 )
     
    % Plot then Yield Per Recruit along the coastline
    subplot(2,1,2)
     
    rect2 = rectangle('position',[300,0,400,0.35],'Facecolor',[0.8 0.8 0.8],'EdgeColor',[1 1 1])
     
    hold on
     
    dh16 =plot([300,300],[0,0.35],'Color',[0.8 0.8 0.8]);
     
    dh17 =plot([700,700],[0,0.35],'Color',[0.8 0.8 0.8]);
     
    dh18 =plot([0,1000],[0,0],'-','Color',[0 0 0]);
     
    p7 = plot( X, YPR_mix_X_1, 'linewidth', 1.5, 'color', 'b' );
     
    p8 = plot( X, YPR_mix_X_2, 'linewidth', 1.5, 'color', 'r' );
     
    p9 = plot( X, YPR_mix_X_3, 'linewidth', 1.5, 'color', [0 0.5 0] );
     
    hold off
     
    axis([0,1000,0,0.35])
    set(gca,'fontsize',12)
    set(gca,'xtick',[300,700], 'xticklabel',{'',''},...
        'fontsize',11)
    xlabel( 'Coastline', 'fontsize', 14 )
    ylabel( 'Yield Per Recruit', 'fontsize', 14 )
     
    l4 = legend([p7 p8 p9],'Overexploited','Underexploited','Fully exploited','Location','North')
    set(l4,'Fontsize',10)

  2. #2
    Membre du Club Avatar de legreg2
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 61
    Points : 68
    Points
    68
    Par défaut
    J'ai trouvé une contribution bien faite :
    BreakAxis

    Il faut l'adapter à ton cas : 2 courbes, en subplot. Mais ça constitue un bon départ je pense. Si tu galère à l'adapter, n'hésite pas !

Discussions similaires

  1. [Débutant] comment déplacer l'axe des ordonnées dans une courbe
    Par khalid_info dans le forum MATLAB
    Réponses: 3
    Dernier message: 25/12/2012, 14h30
  2. comment intervertir l'axe des x et des y?
    Par timbrochier dans le forum MATLAB
    Réponses: 2
    Dernier message: 18/02/2008, 19h24
  3. comment casser les coins des tableaux
    Par somatino dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 23/11/2006, 10h24
  4. [TChart] [Gantt] Comment mettre l'axe des X en heures ?
    Par tipiweb dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/06/2005, 18h37

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