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 :

virer les ticks à droite dans un graphique


Sujet :

MATLAB

  1. #1
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut virer les ticks à droite dans un graphique
    Bonjour à tous,
    encore un combat contre Matlab et sa gestion des graphiques.

    Voici mon image (un semilogY et un plot sur la même figure) :
    Nom : untitled.jpg
Affichages : 64
Taille : 82,3 Ko

    C'est fait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [u,v,w] = plotyy(X(:,an), 1e6.*X(:,cap), X(:,an), 1e6.*cumsum(X(:,cap)), @semilogy, @plot) ;
    on voit que les ticks de l'échelle de droite (semi-log) sont aussi dessinés à gauche (en surimpression des ticks en vert qui ne sont pas semi-log). bref, c'est caca.

    Quand je fais le premier graphique (le semilog), comment je fais pour lui dire de dessiner les ticks que à gauche ?

    pour info le code compet :
    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
    109
    110
    111
    112
    113
    114
    115
    116
    %% Les barrages du Maroc
    %
    %% initialisations
    % Lit le fichier Excel. (première et unique feuille de calcul)
    % num = les tableaux numérique
    % txt = les cellules texte (headers et conolles de texte)
    % raw : chaque cellule Excel dans une cellule Matlab
     
    % clear all
    % [M, txt, raw] = xlsread('E:\Maroc\Liste Barrages Maroc.xls') ;
    % save barrages_Maroc
     
    clc
    clear
    close all
    load barrages_Maroc
     
    % nommer les colonnes
    haut = 1 ;
    cap = 2 ;
    an = 3 ;
    re = 4 ;
     
    % année prise en compte = année de rehaussement
    Re = M(:,re) ;
    Re (isnan(Re)) = 0 ;
    Anf = max(M(:,an), Re) ;
    M = [M, Anf] ;
    an = 5 ; % ne considère plus l'année de construction
     
    % Classifie les barrages par taille,
    % ajoute deux variables booléennes : "est un grand barrage" et "est un très grand barrage" 
    % ajoute les noms de ces colonnes : g et tg
    xtresgrands = M(:,cap)>=500 ; % les barrages de plus de 500 millions de m3
    xgrands = M(:,cap)<=500 ; % les barrages de moins de 500 millions de m3
    M = [M, xgrands, xtresgrands] ;
    g = 6 ;
    tg = 7 ;
     
    %% Figure de la distribution des tailles de barrage
     
    % creation de la figure 1 : 15cm de large, 10 de haut, page A4
    figure (1)
    set(gcf, 'PaperType','A4', 'PaperUnits', 'centimeters')
    hauteur = 8 ;
    largeur = 8 ; 
    set(gcf, 'PaperPosition', [3, 10, hauteur, largeur]) ;
    set(gcf, 'WindowStyle', 'docked') ;
     
    % plote en abscisses le rang du barrage par capacité décroissante
    Xdec = sortrows(M,-cap) ; % par capacité décroissante
    semilogy(1e6 .* Xdec(:,cap), '.')
    axis([1,length(M),min(M(:,2))*1e6,max(M(:,2))*1e6])
    set(gca,'ytick',10.^[5:9])
    grid on
    set (gca, 'GridLineStyle', '-', 'MinorGridLineStyle', 'none')
    l(1) = xlabel('rang du barrage, par capacité décroissante');
    l(2) = ylabel('capacité (m^3)');
    % l(3) = title('répartition des barrages par capacité');
     
    for u=1:length(l)
        set(l(u), 'FontSize', 10, 'FontName', 'Arial') ;
    end
     
    %% Figure du rythme de mise en servive des barrages
    [X, Ix] = sortrows(M,an) ; % par date croisante
    G = X(:,g)==1 ;
    TG = X(:,tg)==1 ;
     
    close (1)
    figure(2) 
    set(gcf, 'PaperType','A4', 'PaperUnits', 'centimeters')
    set(gcf, 'PaperPosition', [3, 10, 18, 10]) ;
    set(gcf, 'WindowStyle', 'docked') 
    AX = [] ;
    H = [] ;
     
    % plot les très grands barrages
    % en X, la date, en Y à gauche, les volumes de chaque barage, en Y à droite, les volumes cumulés
    subplot(2,2,1)
    [u,v,w] = plotyy(X(TG,an), 1e6.*X(TG,cap), X(TG,an), 1e6.*cumsum(X(TG,cap))) ;
    AX(2,1:2)=u ; H(2,1)=v ; H(2,2)=w;
    set(u, 'XLim', [1928, 2013], 'xtick', 1930:20:2010)
    set(u(1), 'YLim', [1, 4e9])
    % set(u(1), 'YScale', 'log')
    set(u(2), 'YLim', [5e6, 2e10])
    % set(u(2), 'YScale', 'log')
    set(H(2,1), 'LineStyle', '.') 
     
    % plote les grands barrages
    subplot(2,2,2)
    [u,v,w] = plotyy(X(G,an), 1e6.*X(G,cap), X(G,an), 1e6.*cumsum(X(G,cap))) ;
    set(u, 'XLim', [1928, 2013], 'xtick', 1930:20:2010)
    % set(u(1), 'YLim', [1, 4e9]) 
    % set(u(2), 'YLim', [1, 2e10])
    set(v, 'LineStyle', '.')
     
    % plote tous
    close(2)
    figure(3)
    set(gcf, 'PaperType','A4', 'PaperUnits', 'centimeters')
    set(gcf, 'PaperPosition', [3, 10, largeur, hauteur]) ;
    set(gcf, 'WindowStyle', 'docked') 
    [u,v,w] = plotyy(X(:,an), 1e6.*X(:,cap), X(:,an), 1e6.*cumsum(X(:,cap)), @semilogy, @plot) ;
     
    set(v, 'LineStyle', '.')
    set(u, 'XLim', [1928, 2013], 'xtick', 1930:20:2010)
    set(u(1), 'YLim', 1e6.*[min(X(:,cap)), max(X(:,cap))])
    set(u(1), 'ytick', [10.^(5:9), 4e9]) % Echelle de gauche : les capacités individuelles
    set(u(2), 'Ylim', [0, 1e6*sum(X(:,cap))])
    set(u(2), 'ytick', 0:2e9:2e10) ;
    set (gca, 'GridLineStyle', ':', 'MinorGridLineStyle', 'none')
    grid on
    xlabel('année de mise en service');
    ylabel('capacité (m^3)');
    set(get(u(2), 'YLabel'), 'String', 'capacité cumulée (m^3)')
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

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

    Rajoute la ligne
    Remarque:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(get(u(2), 'YLabel'), 'String', 'monTexte')
    peut se simplifier en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ylabel(u(2),'monTexte')

  3. #3
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    merki
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

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

Discussions similaires

  1. Afficher les valeurs nulles dans mon graphique ACCESS
    Par sal.der dans le forum VBA Access
    Réponses: 0
    Dernier message: 16/07/2014, 13h37
  2. Réponses: 3
    Dernier message: 02/06/2014, 12h07
  3. Réponses: 2
    Dernier message: 26/09/2012, 10h14
  4. Réponses: 1
    Dernier message: 02/12/2010, 12h33
  5. Masque les valeurs nulles dans un graphique
    Par emilie31 dans le forum Excel
    Réponses: 3
    Dernier message: 11/06/2007, 11h23

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