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

Interfaces Graphiques Discussion :

Plusieurs Graphs sur une figure affichés séparément et non simultanément (subplot)


Sujet :

Interfaces Graphiques

  1. #1
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut Plusieurs Graphs sur une figure affichés séparément et non simultanément (subplot)
    Bonjour à tous

    Je suis en train de concevoir une application qui doit afficher plusieurs Graph à l'écran. le choix de l'affichage se fait grace à des menus

    J'ai essayer plusieurs méthodes mais cela ne fonctionne pas

    1ère solution :

    J'ai créé un objet Axes pour chaque Graph, auquels j'ai affecter un Tag pour pouvoir y accéder.
    Par défaut, ils sont tous invisible.

    J'ai donc ensuite dessiner mes graph sur chaque Axes (Plot avec l'axes comme paramètre).

    Problème, cela dessine tous ou presque sur le même Objet Axes.


    2ème solution

    J'utilise un seul objet Axes
    A chaque fois que je choisit le Graph que je veux afficher, j'efface l'axes et je redesine.

    Problème, j'ai une erreur du style :

    ??? Error using ==> plot
    Vectors must be the same lengths.
    sur la ligne du plot

    Je ne sais pas comment faire

    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Tu pourrais montrer le code utilisé pour chaque solution.

    Pour l'erreur du cas 2 tes entrées dans PLOT doivent être fausses : il te dit que tes vecteurs doivent être de la même taille.
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Voilà mes deux versions

    1ère Solution
    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
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
    484
    485
    486
    487
    488
    489
    490
    491
    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521
    522
    523
    524
    525
    526
    527
    528
    529
    530
     
    %---------------------------------------------------------------------
    %Fonction qui concerne l'interface graphique
    function CalculsPlateForme()
        % On récupère les propriétés de taille du root
        Root =  findobj('type', 'root');
     
        %On récupère le ScreenSize
        TailleRoot = get(Root, 'ScreenSize');
     
        %On définit la taille de la fenêtre
        Largeur = TailleRoot(3) - 100;
        Hauteur = TailleRoot(4) - 200;
     
        %On définit la position de la fenetre
        Gauche = (TailleRoot(3) / 2) - (Largeur / 2);
        Bas = (TailleRoot(4) / 2) - (Hauteur / 2);
     
        % Création de l'objet Figure
        figure('Units', 'Pixels', ...
               'MenuBar', 'none', ...
               'position',[Gauche Bas Largeur Hauteur], ...
               'numbertitle','off', ...
               'name','CalculsPlateForme', ...
               'tag', 'Figure');                            
     
        %On crée le menu
        CreationMenu();
     
        % Création de l'objet Axe qui va contenir le graph du centre de
        % pression
        axes('Tag', 'GraphCentrePression', ...
             'Color', 'w', ...
             'Visible', 'off');
     
        %Création de l'objet Axe qui va contenir le Graph de la composante X
        axes('Tag', 'GraphComposanteX', ...
             'Color', 'w', ...
             'Visible', 'off');
     
        %Création de l'objet Axe qui va contenir le Graph de la composante Y
        axes('Tag', 'GraphComposanteY', ...
             'Color', 'w', ...
             'Visible', 'off');
     
        %Création de l'objet Axe qui va contenir le Graph des deux composantes
        axes('Tag', 'GraphComposantes', ...
             'Color', 'w', ...
             'Visible', 'off');
     
     
    %---------------------------------------------------------------------
     
    % Fonction déclancher lorsque l'on clique sur le menu Charger
    function ChargerClick(hObject, eventdata, handles)
     
        %Sélection du fichier à traiter
        [Fichier, Chemin] = uigetfile({'*.xls', 'Fichiers Excel (*.xls)'}, 'Sélectionner un fichier Excel');
     
        % On récupère le menu Charger
        Charger = findobj('type', 'uimenu', 'tag', 'Charger');
     
        %On désactive le menu Charger
        set(Charger, 'Enable', 'off');
     
        %Si l'utilisateur à cliqué sur Ok
        if Fichier ~= 0
            % On définit la fréquence d'échantillonage
            FreqEch = 40;
     
            % On effectue les calculs
            Calculs = CalculsResultats(Chemin, Fichier, FreqEch);
     
            %On enregistre les calculs dans les données de la figure
            setappdata(gcf, 'LesCalculs', Calculs);
     
            %On dessine les graphs
            DessinerGraphs();
     
            %On recupère le Graph du centre de pression
            GraphCentrePression = findobj('type', 'axes', 'tag', 'GraphCentrePression');
     
            %On rend le Graph visible
            set(GraphCentrePression, 'visible', 'on');
     
     
            %On récupère le handle du Menu Affichage
            Affichage = findobj('type', 'uimenu', 'tag', 'Affichage');
     
            %On active le menu Affichage
            set(Affichage, 'Enable', 'on');
        else
            % On réactive le menu Charger
            set(Charger, 'Enable', 'on');
        end
     
     
    %---------------------------------------------------------------------
     
    % Fonction déclancher lorsque l'on clique sur le menu Quitter
    function QuitterClick(hObject, eventdate, handles)
        % On ferme la fenêtre
        close;
     
    %---------------------------------------------------------------------
     
    % Fonction déclancher lorsque l'on clique sur le menu Centre de pression
    function CentrePressionClick(hObject, eventdata, handles)
        %Si le menu n'est pas coché
        if(strcmp(get(gcbo, 'checked'), 'off'))
            %On gère les coches du menu
            GestionCocheMenu(get(gcbo, 'Tag'));
     
            %On récupère le Graph de la composante X
            Graph = findobj('type', 'axes', 'tag', 'GraphComposanteX');
     
            %Si le Graph est visible
            if(strcmp(get(Graph, 'visible'), 'on'))
                %on le rend invisible
                set(Graph, 'visible', 'off');
            end
     
            %On récupère le Graph de la composante Y
            Graph = findobj('type', 'axes', 'tag', 'GraphComposanteY');
     
            %Si le Graph est visible
            if(strcmp(get(Graph, 'visible'), 'on'))
                %on le rend invisible
                set(Graph, 'visible', 'off');
            end
     
            %On récupère le Graph des Composantes
            Graph = findobj('type', 'axes', 'tag', 'GraphComposantes');
     
            %Si le Graph est visible
            if(strcmp(get(Graph, 'visible'), 'on'))
                %on le rend invisible
                set(Graph, 'visible', 'off');
            end
     
            %On récupère le Graph du centre de pression
            Graph = findobj('type', 'axes', 'tag', 'GraphCentrePression');
     
            %On le rend visible
            set(Graph, 'visible', 'on');
        end
     
    %---------------------------------------------------------------------
     
    % Fonction déclancher lorsque l'on clique sur le menu Ellipse
    function EllipseClick(hObject, eventdata, handles)
        %On gère les coches du menu
        GestionCocheMenu(get(gcbo, 'Tag'));
     
        %on récupère le dessin de l'ellipse
        GraphEllipse = findobj('type', 'line', 'tag', 'GraphEllipse');
     
        %Si le menu est coché
        if(strcmp(get(gcbo, 'checked'), 'on'))
            %On rend visible le Graph de l'ellipse
            set(GraphEllipse, 'linestyle', '-');
         %Sinon le menu n'est pas coché
        else
            %On rend invisible de Graph de l'ellipse
            set(GraphEllipse, 'linestyle', 'none');
        end
     
    %---------------------------------------------------------------------
     
    % Fonction déclancher lorsque l'on clique sur le menu Composante X
    function ComposanteXClick(hObject, eventdata, handles)
        %Si le menu n'est pas coché
        if(strcmp(get(gcbo, 'checked'), 'off'))
            %On gère les coches du menu
            GestionCocheMenu(get(gcbo, 'Tag'));
     
            %On récupère le Graph du centre de pression
            Graph = findobj('type', 'axes', 'tag', 'GraphCentrePression');
     
            %Si le Graph est visible
            if(strcmp(get(Graph, 'visible'), 'on'))
                %on le rend invisible
                set(Graph, 'visible', 'off');
            end
     
            %On récupère le Graph de la composante Y
            Graph = findobj('type', 'axes', 'tag', 'GraphComposanteY');
     
            %Si le Graph est visible
            if(strcmp(get(Graph, 'visible'), 'on'))
                %on le rend invisible
                set(Graph, 'visible', 'off');
            end
     
            %On récupère le Graph des Composantes
            Graph = findobj('type', 'axes', 'tag', 'GraphComposantes');
     
            %Si le Graph est visible
            if(strcmp(get(Graph, 'visible'), 'on'))
                %on le rend invisible
                set(Graph, 'visible', 'off');
            end
     
            %On récupère le Graph de la composante X
            Graph = findobj('type', 'axes', 'tag', 'GraphComposanteX');
     
            %On le rend visible
            set(Graph, 'visible', 'on');
        end
     
    %---------------------------------------------------------------------
     
    % Fonction déclancher lorsque l'on clique sur le menu Composante Y
    function ComposanteYClick(hObject, eventdata, handles)
        %Si le menu n'est pas coché
        if(strcmp(get(gcbo, 'checked'), 'off'))
            %On gère les coches du menu
            GestionCocheMenu(get(gcbo, 'Tag'));
     
            %On récupère le Graph du centre de pression
            Graph = findobj('type', 'axes', 'tag', 'GraphCentrePression');
     
            %Si le Graph est visible
            if(strcmp(get(Graph, 'visible'), 'on'))
                %on le rend invisible
                set(Graph, 'visible', 'off');
            end
     
     
            %On récupère le Graph de la composante X
            Graph = findobj('type', 'axes', 'tag', 'GraphComposanteX');
     
            %Si le Graph est visible
            if(strcmp(get(Graph, 'visible'), 'on'))
                %on le rend invisible
                set(Graph, 'visible', 'off');
            end
     
            %On récupère le Graph des Composantes
            Graph = findobj('type', 'axes', 'tag', 'GraphComposantes');
     
            %Si le Graph est visible
            if(strcmp(get(Graph, 'visible'), 'on'))
                %on le rend invisible
                set(Graph, 'visible', 'off');
            end
     
            %On récupère le Graph de la composante Y
            Graph = findobj('type', 'axes', 'tag', 'GraphComposanteY');
     
            %On le rend visible
            set(Graph, 'visible', 'on');
        end
     
     
    %---------------------------------------------------------------------
     
    % Fonction déclancher lorsque l'on clique sur le menu Composantes
    function ComposantesClick(hObject, eventdata, handles)
        %Si le menu n'est pas coché
        if(strcmp(get(gcbo, 'checked'), 'off'))
            %On gère les coches du menu
            GestionCocheMenu(get(gcbo, 'Tag'));
     
            %On récupère le Graph du centre de pression
            Graph = findobj('type', 'axes', 'tag', 'GraphCentrePression');
     
            %Si le Graph est visible
            if(strcmp(get(Graph, 'visible'), 'on'))
                %on le rend invisible
                set(Graph, 'visible', 'off');
            end
     
            %On récupère le Graph de la composante X
            Graph = findobj('type', 'axes', 'tag', 'GraphComposanteX');
     
            %Si le Graph est visible
            if(strcmp(get(Graph, 'visible'), 'on'))
                %on le rend invisible
                set(Graph, 'visible', 'off');
            end
     
            %On récupère le Graph de la composante Y
            Graph = findobj('type', 'axes', 'tag', 'GraphComposanteY');
     
            %Si le Graph est visible
            if(strcmp(get(Graph, 'visible'), 'on'))
                %on le rend invisible
                set(Graph, 'visible', 'off');
            end
     
            %On récupère le Graph des composantes
            Graph = findobj('type', 'axes', 'tag', 'GraphComposantes');
     
            %On le rend visible
            set(Graph, 'visible', 'on');
        end
     
     
    %---------------------------------------------------------------------
     
    % fonction qui permet de créer le menu
    function CreationMenu()
        %création du Menu Acqusition
        Acquisition = uimenu('parent', gcf, ...
               'Tag' , 'Acquisition', ...
               'Label', 'Acquisition');
     
        %Création du sous-menu Charger
        uimenu('parent', Acquisition, ...
               'tag', 'Charger', ...
               'label', 'Charger', ...
               'callback', @ChargerClick);
     
        %Création du sous-menu Quitter
        uimenu('parent', Acquisition, ...
               'Tag', 'Quitter', ...
               'Label', 'Quitter', ...
               'Callback', @QuitterClick);
     
     
        %Création du menu Affichage
        Affichage = uimenu('parent', gcf, ...
                  'Tag', 'Affichage', ...
                  'Label', 'Affichage', ...
                  'Enable', 'off');
     
        %Création du sous-menu Centre de pression
        uimenu('parent', Affichage, ...
               'Tag', 'CentrePression', ...
               'Label', 'Centre De Pression', ...
               'Checked', 'on', ...
               'callback', @CentrePressionClick);
     
        %Création du sous-menu Ellipse de confiance
        uimenu('parent', Affichage, ...
               'Tag', 'Ellipse', ...
               'Label', 'Ellipse de confiance', ...
               'Checked', 'on', ...
               'callback', @EllipseClick);
     
     
        %Création du sous-menu Composante X
        uimenu('parent', Affichage, ...
               'Tag', 'ComposanteX', ...
               'Label', 'Composante X', ...
               'callback', @ComposanteXClick);
     
        %Création du sous-menu Composante Y
        uimenu('parent', Affichage, ...
               'Tag', 'ComposanteY', ...
               'Label', 'Composante Y', ...
               'callback', @ComposanteYClick);
     
        %Création du sous-menu Centre de pression
        uimenu('parent', Affichage, ...
               'Tag', 'Composantes', ...
               'Label', 'Composantes (X et Y)', ...
               'callback', @ComposantesClick);
     
    %---------------------------------------------------------------------
     
    %Fonction charger de la gestion des coches du Menu
    function GestionCocheMenu(Tag)
     
        %Si le Tag est Ellipse
        if(strcmp(Tag, 'Ellipse'))
            %On récupère le menu Ellipse
            Menu = findobj('type', 'uimenu', 'tag', 'Ellipse');
     
            %Si le menu est coché
            if(strcmp(get(Menu, 'checked'), 'on'))
                %On le décoche
                set(Menu, 'checked', 'off');
            %Sinon le menu n'est pas coché
            else
                %On le coche
                set(Menu, 'checked', 'on');
            end
        %Sinon le tag n'est pas Ellipse
        else
            %on récupère le menu CentrePression
            Menu = findobj('type', 'uimenu', 'tag', 'CentrePression');
     
            %Si le Tag est CentrePression
            if(strcmp(get(Menu, 'tag'), Tag))
                %On coche le menu
                set(Menu, 'checked', 'on');
     
                %On récupère le menu Ellipse
                Menu = findobj('type', 'uimenu', 'tag', 'Ellipse');
     
                %On l'active
                set(Menu, 'enable', 'on');
            %Sinon le Tag n'est pas CentrePression
            else
                %Si le menu est coché
                if(strcmp(get(Menu, 'checked'), 'on'))
                    %On le décoche
                    set(Menu, 'checked', 'off');
     
                    %On récupère le menu ELlipse
                    Menu = findobj('type', 'uimenu', 'tag', 'Ellipse');
     
                    %On désactive le menu Ellipse
                    set(Menu, 'enable', 'off');
                end
            end
     
            %On récupère le sous-menu ComposanteX
            Menu = findobj('type', 'uimenu', 'tag', 'ComposanteX');
     
            %Si le Tag est ComposanteX
            if(strcmp(get(Menu, 'tag'), Tag))
                %On coche le menu
                set(Menu, 'checked', 'on');
            %Sinon le Tag n'est pas ComposanteX
            else
                %Si le menu est coché
                if(strcmp(get(Menu, 'checked'), 'on'))
                    %On le décoche
                    set(Menu, 'checked', 'off');    
                end
            end
     
            %On récupère le sous-menu ComposanteY
            Menu = findobj('type', 'uimenu', 'tag', 'ComposanteY');
     
            %Si le Tag est ComposanteY
            if(strcmp(get(Menu, 'tag'), Tag))
                %On coche le menu
                set(Menu, 'checked', 'on');
            %Sinon le Tag n'est pas ComposanteY
            else
                %Si le menu est coché
                if(strcmp(get(Menu, 'checked'), 'on'))
                    %On le décoche
                    set(Menu, 'checked', 'off');    
                end
            end
     
            %On récupère le sous-menu Composantes
            Menu = findobj('type', 'uimenu', 'tag', 'Composantes');
     
            %Si le Tag est Composantes
            if(strcmp(get(Menu, 'tag'), Tag))
                %On coche le menu
                set(Menu, 'checked', 'on');
            %Sinon le Tag n'est pas Composantes
            else
                %Si le menu est coché
                if(strcmp(get(Menu, 'checked'), 'on'))
                    %On le décoche
                    set(Menu, 'checked', 'off');    
                end
            end
        end
     
     
    %Fonction chargée de dessiner les Graphs
    function DessinerGraphs()
        %On récupère les calculs
        Calculs = getappdata(gcf, 'LesCalculs');
     
        %On dessine le Graph
        hold on
     
        %On récupère l'axes GraphCentrePression
        GraphCentrePression = findobj('type', 'axes', 'tag', 'GraphCentrePression');
     
        %On dessine le centre de pression
        plot(GraphCentrePression, Calculs.X, Calculs.Y, '-g', 'tag', 'GraphiqueCentrePression');
     
        %On récupère le menu Ellipse
        Ellipse = findobj('type', 'uimenu', 'tag', 'Ellipse');
     
        %Si le menu ellipse est coché
        if(strcmp(get(Ellipse, 'checked'), 'on'))
            %On dessine l'ellipse
            plot(GraphCentrePression, Calculs.outellip.ellip(:, 1), Calculs.outellip.ellip(:, 2), '-r', 'tag', 'GraphEllipse');
        end
     
        %On renseigne le titre du Graph
        title('Centre De Pression');
     
        hold off
     
        %On récupère le Graph de la composante X
        GraphComposanteX = findobj('type', 'axes', 'tag', 'GraphComposanteX');
     
        %On dessine le Graph
        plot(GraphComposanteX, Calculs.X, '-b');
     
        %On renseigne le titre du Graph
        title('Composante X');
     
        %On rend le Graph invisible
        set(GraphComposanteX, 'visible', 'off');
     
        % On récupère le Graph de la composante Y
        GraphComposanteY = findobj('type', 'axes', 'tag', 'GraphComposanteY');
     
        %On dessine le graph
        plot(GraphComposanteY, Calculs.Y, '-r');
     
        %On renseigne le titre du Graph
        title('Composante Y');
     
        %On rend le Graph invisible
        set(GraphComposanteY, 'visible', 'off');
     
        %On récupère le Graph des composantes
        GraphComposantes = findobj('type', 'axes', 'tag', 'GraphComposantes');
     
        %On dessine le graph de la composante X
        subplot(2, 1, 1);
        plot(GraphComposantes, Calculs.X);
     
        %On renseigne le titre du Graph
        title('Composante X');
     
        %On dessine le Graph de la composante Y
        subplot(2, 1, 2);
        plot(GraphComposantes, Calculs.Y);
     
        %On renseigne le titre du Graph
        title('Composante Y');
     
        %On rend le Graph invisible
        set(GraphComposantes, 'visible', 'off');
    J'ai ceci comme erreur
    ??? Error using ==> set
    Invalid handle object.

    Error in ==> CalculsPlateForme>DessinerGraphs at 529
    set(GraphComposantes, 'visible', 'off');
    Error in ==> CalculsPlateForme>ChargerClick at 77
    DessinerGraphs();

    ??? Error while evaluating uimenu Callback
    Et j'ai à l'écran mes deux subplot


    2ème solution
    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
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
     
    %---------------------------------------------------------------------
    %Fonction qui concerne l'interface graphique
    function CalculsPlateForme2()
        % On récupère les propriétés de taille du root
        Root =  findobj('type', 'root');
     
        %On récupère le ScreenSize
        TailleRoot = get(Root, 'ScreenSize');
     
        %On définit la taille de la fenêtre
        Largeur = TailleRoot(3) - 100;
        Hauteur = TailleRoot(4) - 200;
     
        %On définit la position de la fenetre
        Gauche = (TailleRoot(3) / 2) - (Largeur / 2);
        Bas = (TailleRoot(4) / 2) - (Hauteur / 2);
     
        % Création de l'objet Figure
        figure('units','pixels', ...
               'MenuBar', 'none', ...
               'position',[Gauche Bas Largeur Hauteur], ...
               'numbertitle','off', ...
               'name','CalculsPlateForme', ...
               'tag', 'Figure');                            
     
        %On crée le menu
        CreationMenu();
     
        % Création de l'objet Axe qui va contenir les graphs
        axes('Tag', 'Graph', ...
             'Color', 'w', ...
             'Visible', 'off');
     
     
    %---------------------------------------------------------------------
     
    % Fonction déclancher lorsque l'on clique sur le menu Charger
    function ChargerClick(hObject, eventdata, handles)
     
        %Sélection du fichier à traiter
        [Fichier, Chemin] = uigetfile({'*.xls', 'Fichiers Excel (*.xls)'}, 'Sélectionner un fichier Excel');
     
        % On récupère le menu Charger
        Charger = findobj('type', 'uimenu', 'tag', 'Charger');
     
        %On désactive le menu Charger
        set(Charger, 'Enable', 'off');
     
        %Si l'utilisateur à cliqué sur Ok
        if Fichier ~= 0
            % On définit la fréquence d'échantillonage
            FreqEch = 40;
     
            % On effectue les calculs
            Calculs = CalculsResultats(Chemin, Fichier, FreqEch);
     
            %On enregistre les calculs dans les données de la figure
            setappdata(gcf, 'LesCalculs', Calculs);
     
            %On dessine le graph
            DessinerGraph();
     
            %On récupère le handle du Menu Affichage
            Affichage = findobj('type', 'uimenu', 'tag', 'Affichage');
     
            %On active le menu Affichage
            set(Affichage, 'Enable', 'on');
        else
            % On réactive le menu Charger
            set(Charger, 'Enable', 'on');
        end
     
     
    %---------------------------------------------------------------------
     
    % Fonction déclancher lorsque l'on clique sur le menu Quitter
    function QuitterClick(hObject, eventdate, handles)
        % On ferme la fenêtre
        close;
     
    %---------------------------------------------------------------------
     
    % Fonction déclancher lorsque l'on clique sur le menu Centre de pression
    function CentrePressionClick(hObject, eventdata, handles)
        %Si le menu n'est pas coché
        if(strcmp(get(gcbo, 'checked'), 'off'))
            %On gère les coches du menu
            GestionCocheMenu(get(gcbo, 'Tag'));
     
            %On dessine le graph
            DessinerGraph();
        end
     
    %---------------------------------------------------------------------
     
    % Fonction déclancher lorsque l'on clique sur le menu Ellipse
    function EllipseClick(hObject, eventdata, handles)
        %On gère les coches du menu
        GestionCocheMenu(get(gcbo, 'Tag'));
     
        %On dessine le graph
        DessinerGraph();
     
    %---------------------------------------------------------------------
     
    % Fonction déclancher lorsque l'on clique sur le menu Composante X
    function ComposanteXClick(hObject, eventdata, handles)
        %Si le menu n'est pas coché
        if(strcmp(get(gcbo, 'checked'), 'off'))
            %On gère les coches du menu
            GestionCocheMenu(get(gcbo, 'Tag'));
     
            %On dessine le graph
            DessinerGraph();
        end
     
    %---------------------------------------------------------------------
     
    % Fonction déclancher lorsque l'on clique sur le menu Composante Y
    function ComposanteYClick(hObject, eventdata, handles)
        %Si le menu n'est pas coché
        if(strcmp(get(gcbo, 'checked'), 'off'))
            %On gère les coches du menu
            GestionCocheMenu(get(gcbo, 'Tag'));
     
            %On dessine le graph
            DessinerGraph();
        end
     
     
    %---------------------------------------------------------------------
     
    % Fonction déclancher lorsque l'on clique sur le menu Composantes
    function ComposantesClick(hObject, eventdata, handles)
        %Si le menu n'est pas coché
        if(strcmp(get(gcbo, 'checked'), 'off'))
            %On gère les coches du menu
            GestionCocheMenu(get(gcbo, 'Tag'));
     
            %On dessine le graph
            DessinerGraph();
        end
     
     
    %---------------------------------------------------------------------
     
    % fonction qui permet de créer le menu
    function CreationMenu()
    ...
     
    %---------------------------------------------------------------------
     
    %Fonction charger de la gestion des coches du Menu
    function GestionCocheMenu(Tag)
    ...
     
    %Fonction chargée de dessiner les Graphs
    function DessinerGraph()
        %On récupère les calculs
        Calculs = getappdata(gcf, 'LesCalculs');
     
        %on récupère le sous-meu Centre de Pression
        Menu = findobj('type', 'uimenu', 'tag', 'CentrePression');
     
        % On récupère le graph
        Graph = findobj('type', 'axes', 'tag', 'Graph');
     
        %On efface le graphique
        cla(Graph);
     
        %Si le menu du centre de pression est coché
        if(strcmp(get(Menu, 'checked'), 'on'))
            hold on
     
            %On dessine le centre de pression
            plot(Graph, Calculs.X, Calculs.Y, '-g');
     
            %On récupère le menu Ellipse
            Menu = findobj('type', 'uimenu', 'tag', 'Ellipse');
     
            %Si le menu ellipse est coché
            if(strcmp(get(Menu, 'checked'), 'on'))
                %On dessine l'ellipse
                plot(Graph, Calculs.outellip.ellip(:, 1), Calculs.outellip.ellip(:, 2), '-r', 'tag', 'GraphEllipse');
            end
     
            title('Centre De Pression');
     
            hold off        
        end
     
        %On récupère le Menu ComposanteX
        Menu = findobj('type', 'uimenu', 'tag', 'ComposanteX');
     
        %Si le Menu est coché
        if(strcmp(get(Menu, 'checked'), 'on'))
            %On dessine le graph
            plot(Graph, Calculs.X, '-b');
     
            %On renseigne le titre
            title('Composante X');
        end
     
        %On récupère le Menu ComposanteY
        Menu = findobj('type', 'uimenu', 'tag', 'ComposanteY');
     
        %Si le Menu est coché
        if(strcmp(get(Menu, 'checked'), 'on'))
            %On dessine le graph
            plot(Graph, Calculs.Y, '-r');
     
            %On renseigne le titre
            title('Composante Y');
        end
     
     
        %On récupère le Menu Composantes
        Menu = findobj('type', 'uimenu', 'tag', 'Composantes');
     
        %Si le Menu est coché
        if(strcmp(get(Menu, 'checked'), 'on'))
            %On dessine le graph de la composante X
            subplot(2, 1, 1);
            plot(Graph, Calculs.X, '-b');
            title('Composante X');
     
            %On dessine le Graph de la composante Y
            subplot(2, 1, 2);
            plot(Graph, Calculs.Y, '-r');
            title('Composante Y');
        end
     
        %Si le Graph n'est pas visible
        if(strcmp(get(Graph, 'visible'), 'off'))
            %on le rend visible
            set(Graph, 'visible', 'on');
        end
    J'ai une erreur de se style à chaque fois que je veux changer de Graph

    ?? Error using ==> plot
    Vectors must be the same lengths.

    Error in ==> CalculsPlateForme2>DessinerGraph at 346
    plot(Graph, Calculs.X, '-b');

    Error in ==> CalculsPlateForme2>ComposanteXClick at 114
    DessinerGraph();

    ??? Error while evaluating uimenu Callback
    La fonction CalculsResultats est une fonction qui fait des calculs à partir d'un fichier Excel en entrée.

  4. #4
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Sur la 1ère solution je n'arrive pas non plus à voir d'où peut venir l'erreur.
    As-tu essayé d'utiliser le débuggueur intégré à l'éditeur de MATLAB pour regarder pas à pas la valeur du handle GraphComposantes ?

    Sur la 2ème, vu le message d'erreur, il semblerait qu'au lieu de prendre la variable Graph comme handle des axes, il estime que c'est l'abscisse du plot.
    Ceci dit si tu n'as qu'un seul objet axes, tu n'as pas besoin de le mettre en paramètre de la fonction PLOT, celle-ci choisira automatiquement l'objet axes courant.
    Tu peux essayer avec juste :
    Règles du Forum

    Adepte de la maïeutique

  5. #5
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Pour la première solution, j'ai fait quelques modifications,

    J'ai créé une fonction pour la gestion de l'affichage de mes graphs

    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
     
    %Fonction chargée de la gestion de l'affichage des graphs
    function GestionAffichageGraphs(Graph, Visible)
        Tag = get(Graph, 'tag');
     
        %Si le tag du graph est GraphCentrePression
        if(strcmp(get(Graph, 'tag'), 'GraphCentrePression'))
            % on récupère le Dessin du centre de pression
            CentrePression = findobj('type', 'line', 'tag', 'CentrePression');
     
            %On récupère le Dessin de l'ellipse
            Ellipse = findobj('type', 'line', 'tag', 'Ellipse');
     
            %Si l'on doit le rendre visible
            if(strcmp(Visible, 'on'))
                %On le rend visible
                set(CentrePresion, 'linestyle', '-');
     
                %On récupère le MenuItem Ellipse
                MenuItemEllipse = findobj('type', 'uimenu', 'tag', 'MenuItemEllipse');
     
                %Si le MenuItem est coché
                if(strcmp(get(MenuItemEllipse, 'checked'), 'on'))
                    %On rend visible le dessin de l'ellipse
                    set(Ellipse, 'linestyle', '-');
                end
     
                %On rend visible le Graph du centre de pression
                set(Graph, 'visible', 'on');
            %Sinon on doit le rendre invisible
            else
                %On rend le dessin du centre de pression invisible
                set(CentrePression, 'linestryle', 'none');
     
                %On rend invisible le dessin de l'ellipse
                set(Ellipse, 'linestyle', 'none');
     
                %On rend invisible le Graph du centre de pression
                set(Graph, 'visible', 'off');
            end
        %Sinon le tag n'est pas GraphCentrePression
        else
            %Si le Tag du Graph est GraphComposanteX
            if(strcmp(get(Graph, 'tag'), 'GraphComposanteX'))
                %On récupère le dessin de la composante X
                ComposanteX = findobj('type', 'line', 'tag', 'ComposanteX');
     
                %Si l'on doit rendre le Graph visible
                if(strcmp(Visible, 'on'))
                    %On rend visible le dessin de la composante X
                    set(ComposanteX, 'linestyle', '-');
     
                    %On rend visible le graph de la composante X
                    set(Graph, 'visible', 'on');
                %Sinon on doit rendre le graph invisible
                else
                    %On rend le dessin de la composante X invisible
                    set(ComposanteX, 'linestyle', 'none');
     
                    %On rend invisible le Graph de la composante X
                    set(Graph, 'visible', 'off');
                end  
            %Sinon le tag n'est pas GraphComposanteX
            else
                %Si le tag du Graph est GraphComposanteY
                if(strcmp(get(Graph, 'tag'), 'GraphComposanteY'))
                    %On récupère le dessin de la composante X
                    ComposanteY = findobj('type', 'line', 'tag', 'ComposanteY');
     
                    %Si l'on doit rendre le Graph visible
                    if(strcmp(Visible, 'on'))
                        %On rend visible le dessin de la composante Y
                        set(ComposanteY, 'linestyle', '-');
     
                        %On rend visible le graph de la composante Y
                        set(Graph, 'visible', 'on');
                    %Sinon on doit rendre le graph invisible
                    else
                        %On rend le dessin de la composante Y invisible
                        set(ComposanteY, 'linestyle', 'none');
     
                        %On rend invisible le graph de la composante Y
                        set(Graph, 'visible', 'off');
                    end 
                end
            end
        end
    Je passe à cette fonction le handle du Graph, et si je veux le rendre visible 'on' ou invisible 'off'

    J'ai tester en mode debug, et le numero du handle est le bon dans la fonction mais quand je fais le get pour récupérer le tag, il est vide.


    Sinon j'ai aussi un autre problème avec la fonction de dessin de mes Graph, je dessine mon centre de pression, pas de problème et ensuite quand cela dessine l'ellipse, cela efface le premier malgré le hold on

  6. #6
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Citation Envoyé par kurul1 Voir le message
    J'ai tester en mode debug, et le numero du handle est le bon dans la fonction mais quand je fais le get pour récupérer le tag, il est vide.
    C'est a priori normal.
    Même si ce n'est pas forcément ce que tu fais cette note technique répond en partie au pourquoi de ce comportement :
    Why is the Tag property of the parent axes not retained when using the IMSHOW function? - 1-5BO0I4

    Citation Envoyé par kurul1 Voir le message
    Sinon j'ai aussi un autre problème avec la fonction de dessin de mes Graph, je dessine mon centre de pression, pas de problème et ensuite quand cela dessine l'ellipse, cela efface le premier malgré le hold on
    Là c'est bizarre. Il n'y a pas un hold off qui traine ?
    Règles du Forum

    Adepte de la maïeutique

  7. #7
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    bon et bien, ca marche bien maintenant, merci pour ton aide

    J'ai donc rajouter dans la création de mes axes ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        axes('Tag', 'GraphCentrePression', ...
             'Color', 'w', ...
             'Visible', 'off', ...
             'nextplot', 'add');
    Et ainsi cela fonctionne nikel, mes graphs ce cache bien, et quand je dessine du graph sur le même axes, les deux restes bien affiché maintenant.

    Merci pour ton aide

  8. #8
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Mais j'ai un autre soucis maintenant.

    Dans un de mes modes, il n'y a pas un mais 2 graphs d'affichés (subplot), et là, pour les rendres invisibles, je n'y arrive pas.

    Aurais-tu une solution ?

  9. #9
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    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 304
    Points : 52 886
    Points
    52 886
    Par défaut
    La fonction SUBPLOT ne fait que créer des objets Axes régulièrement espacés.

    Tu devrais donc pouvoir appliquer la même méthode que précédemment.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  10. #10
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Comment je peux donc avoir accès à mes objets axes créés par le subplot ?

  11. #11
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Tu peux récupérer le handle en sortie de subplot et à partir de là lui mettre les propriétés que tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    h=subplot(...);
    set(h,'property',value);
    Règles du Forum

    Adepte de la maïeutique

  12. #12
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    à la création, pas de souci, mais ensuite, si je veux les rendres de novueaux visible ?

    Faut-il que je leur attributs un tag pour pouvoir les rappeler par la suite ?

  13. #13
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Oui le Tag n'est qu'une propriété comme une autre. Tu peux utiliser cette méthode.

    Mais, le Tag n'est qu'une façon parmi tant d'autres de retrouver des infos sur un
    objet. Perso, ce n'est pas ma préférée, et comme tu l'as vu dans le cas des objets Axes cela peut poser problème.
    Tu peux voir ici les différentes méthodes :
    Développement efficace des interfaces graphiques (GUI)

    Tu peux dans ton cas utiliser guihandles/guidata ou get/setappdata.
    Bonne lecture
    Règles du Forum

    Adepte de la maïeutique

  14. #14
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    J'ai reussit avec les tag, mais maintenant j'ai encore un autre problème qui se pose.

    Lorsque je dessine mes deux subplot et que je les rend invisible, plus rien de ce qu'il y a en dessous n'est visible après.

    Et ce qu'il y a encore un autre élément ca cacher ?

  15. #15
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    C'est bizarre.
    Tu as quoi comme type d'objets "en dessous" ?
    Règles du Forum

    Adepte de la maïeutique

  16. #16
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    J'ai une figure et 4 axes que je cache ou rend visible selon mes besoins, et parmis les 4 axes, il y en a un avec deux subplot

    Je cache les subplots, pas de souci, les courbes également, mais il semble qu'il reste quelque chose devant puisque quand je rend visible un autre axes, on ne le voit pas.

    Pour information, l'axe avec les subplots et le dernier à être dessiner, donc c'est lui qui est en premier plan

    J'ai même cacher l'objet axes de bases dans lequel je créé mes subplots

  17. #17
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    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 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Je ne suis pas sûr de bien tout comprendre mais attention à ne pas superposer plusieurs objet Axes crées avec la fonction SUBPLOT :

    If a SUBPLOT specification causes a new axis to overlap an
    existing axis, the existing axis is deleted - unless the position
    of the new and existing axis are identical. For example,
    the statement SUBPLOT(1,2,1) deletes all existing axes overlapping
    the left side of the Figure window and creates a new axis on that
    side - unless there is an axes there with a position that exactly
    matches the position of the new axes (and 'replace' was not specified),
    in which case all other overlapping axes will be deleted and the
    matching axes will become the current axes.
    Je ne sais pas si c'est la cas ici ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  18. #18
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Pour résumer :

    Je crée un premier axes ou je trace un graphique, puis je le rend invisible
    J'en crée 3 en comptant le premier de la même manière

    Je voudrais ensuite créer un Graphique représentant 2 petits graphs l'un au dessus de l'autre, (subplot), et de pouvoir également les rendres invisibles.

    Je voudrais pouvoir rendre mes différents Graphs visible en les séléctionnant dans un menu.

    Cela fonctionne pour les 3 premiers, là, pas de souci, mais dès que je crée mon Graph avec les deux subplots, et bien je ne peux plus voir d'autres Graphs.

    Ecraserais-je donc un de mes autres objets Axes en créant mes subplots comme expliquer dans ton post

  19. #19
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    il semble bien que ce soit ca Dut,

    J'ai inversé la création de mes axes, en créant en premier les subplot et en créant ensuite les autres Graphs et là, pas de souci.

    Par contre, étant donné que je risque par la suite de rajouter des Graphs avec subplot, y a-t-il moyen de créer des subplot qui n'écrase pas les axes existant ?

  20. #20
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    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 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Citation Envoyé par kurul1 Voir le message
    Par contre, étant donné que je risque par la suite de rajouter des Graphs avec subplot, y a-t-il moyen de créer des subplot qui n'écrase pas les axes existant ?
    Ben... en utilisant AXES à la place de SUBPLOT, non ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Plusieurs plots sur une figure
    Par Newenda dans le forum MATLAB
    Réponses: 11
    Dernier message: 19/01/2010, 12h41
  2. Regrouper plusieurs graphes sur une seule page
    Par Pur2000 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/12/2008, 11h53
  3. Création Plusieurs graph sur une feuille
    Par deniooo dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 05/09/2008, 15h58
  4. [JpGraph] Plusieurs graphes sur une même page
    Par Dam1en dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/12/2007, 23h13
  5. [C#][SVG] Combinaison de plusieurs graphe sur une même page
    Par doudoustephane dans le forum ASP.NET
    Réponses: 2
    Dernier message: 22/11/2006, 09h19

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