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 :

Afficher 2 figures dans une seule fenêtre : SUBPLOT ? Ca ne fonctionne pas. [Débutant]


Sujet :

MATLAB

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 49
    Points
    49
    Par défaut Afficher 2 figures dans une seule fenêtre : SUBPLOT ? Ca ne fonctionne pas.
    Bonjour à tous !!

    J'ai créé une figure représentant un histogramme et une autre figure représentant un tableau style Excel.

    >> Les figures ont été réalisées avec LINE (Je n'ai pas réussi à faire ce que je voulais avec HIST) et TEXT (pour les étiquettes des axes et pour remplir le tableau avec les valeurs d'une matrice).
    >> Les figures ont été enregistrées avec SAVEAS au format PNG. Peut-être que dans mon cas utiliser le format FIG serait plus adapté ?

    J'aimerais que mes deux figures apparaissent dans une seule fenêtré, l'une à côté de l'autre, pour enregistrer cette nouvelle figure au format PNG.

    J'ai essayé d'utiliser SUBPLOT(2,1,1) et SUBPLOT(2,2,1). Mais la deuxième figure écrase la première ...

    Avez-vous une idée de ce que je pourrais faire ?
    N'existe-t'il pas une fonction qui permette de juxtaposer deux images ?

    Je vous mets le code suivant en exemple :

    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
     
    %%%%%%%%%%%%%%
    %% FIGURE 1 %%
    %%%%%%%%%%%%%%
     
     
    M = [11,12 ; 21,22 ; 31,32];
    R = [13,14 ; 23,24 ; 33,34];
    D = [360;275;265;180]
    H = [1.5;2.5]
     
    S = size(M);
     
    figure
    hold on
     
    for x = 1:3
        Ymin = 1;
        Ymax = 4;
    line([x x],[Ymin Ymax],'linewidth',3)
    end
     
    for y = 1:4
        Xmin = 1;
        Xmax = 3;
    line([Xmin Xmax],[y y],'linewidth',3)
    end
     
    %% Valeurs tableau
    [X,Y] = meshgrid(2:S(2)+1,2:S(1)+1);
     
    text(X(:)-.5,Y(:)-.5, num2str([M(:) R(:)],'%.1f%%\n \\color{red}%.1f%%'),...
            'hor','center','vert','middle');    
     
    %% Légende à droite du tableau
    [X,Y] = meshgrid(3.2,1:S(1)+1);
     
    text(X(:),Y(:), num2str(D(:),'%.0f°%'),...
            'hor','center','vert','middle');    
     
    %% Légende en bas du tableau
    [X,Y] = meshgrid(1.5:S(2)+.5,4.2);
     
    text(X(:),Y(:), num2str(H(:),'%.0f m%'),...
            'hor','center','vert','middle');    
     
     
    set(gca,'Visible', 'off','xlim',[.5 S(2)+1.5],'ylim',[.5 S(1)+1.5], 'ydir', ...
            'reverse','xticklabel','','yticklabel','')
     
     
    saveas(gcf,'test','png')
     
    %%%%%%%%%%%%%%
    %% FIGURE 2 %%
    %%%%%%%%%%%%%%
     
    D=[100;200;1001;2001;3521;1520;235;5632;1544;2513]
     
     
    % DebD MIN à prendre en compte :
    Dmin = [0;1000;2000;3000;4000];
    % DebD MAX à prendre en compte :
    Dmax = [1000;2000;3000;4000;10000];
    Dc={};
    NbClasse = size(Dmin(:,1));
    val=[];
    NbValTot = size(D(:,1));
     
    figure
    hold on
    for classe = 1:NbClasse
    val=find(D >= Dmin(classe) & D < Dmax(classe));
     
    % On initialise la date, le débit et le nombre de ligne :
    Dc{classe}=D(val); % par chaque date "dat" comprise en dat1 et dat2,
    Dmoy(classe) = mean(Dc{classe}(:,1));
    NbValDc = size(Dc{classe}(:,1));
    ProbOcc(classe) = NbValDc/NbValTot;
     
    X = Dmoy(classe);
    Ymax = ProbOcc(classe);
    Ymin = 0;
    C = ProbOcc(classe);
        line([X, X],[Ymin, Ymax],'LineWidth',30,'Color',[.8 .2 0])
        Xbis = X;
        Ybis = Ymax + 0.025;
        Str = num2str(X,'%.0f');
        text(Xbis,Ybis,Str,'hor','center');
    end
    % Add title and axis labels
    title('Titre');
    xlabel('D');
    ylabel(' ProbOcc ');
    xlim([0 6000]);
     
    saveas(gcf,'Test','png');

    Merci d'avance !!

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 881
    Points : 3 429
    Points
    3 429
    Par défaut
    salut

    relis la doc de subplot (ou la FAC de DVP si t'es allergique à l'anglais)
    le 2ème subplot devrait être écrit comme suit :
    comme tu l'as ecris cela veut dire que tu veux créer le 1er graphique d'une série de 4 (2*2)

    fabien

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 49
    Points
    49
    Par défaut
    Arf !
    Oui, en effet, je me suis embrouillé ...
    C'est ce SUBPLOT là dont j'ai besoin :
    subplot(1,2,1)
    subplot(1,2,2)
    Pour que les graphes soient à côté l'un de l'autre ...

    Merci ^^

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

Discussions similaires

  1. coment afficher un champ dans une deuxiéme fenêtre.
    Par loic20h28 dans le forum WinDev
    Réponses: 2
    Dernier message: 03/03/2008, 14h36
  2. [WinDev 12] 2 fichiers dans une seule fenêtre
    Par Xsara 167 cv dans le forum WinDev
    Réponses: 5
    Dernier message: 24/01/2008, 09h09
  3. Réponses: 8
    Dernier message: 30/07/2007, 14h58
  4. Afficher la réponse dans une nouvelle fenêtre
    Par barthez dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 20/10/2006, 22h55
  5. Ouvrir une adresse dans une seule fenêtre
    Par efficks dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/04/2006, 10h45

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