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 :

Mise a jour de graphique après itérations [Débutant]


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par défaut Mise a jour de graphique après itérations
    Bonjour,

    Actuellement en stage à l'ETS Montreal, je travaille sur un code matlab simulant un injecteur diesel.
    Je dois calibrer ce code pour qu'il corresponde aux résultats obtenues expérimentalement.

    Lorsque j'exécute mon code, j'obtiens ceci :
    Nom : courbe_init.png
Affichages : 842
Taille : 12,2 Ko

    Je veux conserver la courbe bleu lorsque je relance le programme une fois que jai modifié le paramètre voulu. La nouvelle courbe devra avoir une couleur différente et modifier la légende comme suit :
    Nom : courbe_modif.png
Affichages : 785
Taille : 15,1 Ko

    Cette courbe avait été avec le code suivant, j'ai du modifier manuellement le code de la ligne bleu pour obtenir la verte. La légende ne correspond pas aux bonnes courbes. J'aimerai donc pouvoir avoir un code me permettant de converser la courbe bleu puis ajouter une nouvelle courbe en mettant à jour la légende.

    Voici le code que j'ai utilisé pour obtenir le dernier graphique.

    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
     
    figure (5)
     
    %Matlab
    hold on
     
    %plot(tsim,minj,'-b') %première itération %Je veux donc paramétrer cette courbe pour qu'a chaque itération, je conserve la première en bleu et ajoute la deuxieme en vert par exemple
    plot(tsim,minj,'-g') %deuxième itération
     
    %Expérimental
    [temps]=xlsread('Temps.xlsx');
    [debit]=xlsread('Débits.xlsx');
    debit = smooth (debit);
    y = plot(temps,debit,'-r'); %cette courbe est à conserver sur chaque graph
     
    xlim([0 0.01])
    ylim([0 25])
    xlabel('Temps [s]')
    ylabel('Debit massique [mg/ms]')
    title('Taux Introduction ')
     
    list={'Matlab init','Matlab modif','Expérimental init'}; %les lignes pour ma légende, j'ai trouvé ca sur la toile mais ca ne fonctionne pas comme je le voudrais..
    leg=legend(list,'Location','northwest');
    legtxt=findobj(leg,'type','text');
    set(legtxt(1),'color','-b')
    set(legtxt(2),'color','-g')
    set(legtxt(3),'color','-r')
    Merci d'avance pour votre aide !
    Alexis.

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2012
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Décembre 2012
    Messages : 97
    Par défaut
    Bonjour,

    Une solution serait de créer une matrice Minj contenant la masse injectée pour chaque itération dans une colonne. Tu conserves ainsi les données pour chaque itération et tu n'as plus qu'à les tracer avec un hold on.

    Tu peux définir la légende pour la totalité des itérations comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i = 1:nombre_diterations
        legendInfo{i} = ['Numerique iteration ' num2str(i)];
    end
    Et l'ajouter ensuite dans le plot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    hold on
    plot(...)
    legend(['Experimental',legendInfo]);
    hold off

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par défaut
    Merci ça répond bien à ce que je voulais pour ma légende

    Plus qu'a réussir à attribuer les couleurs que je veux à mes courbes.

    J'ai l'impression que le fait d'avoir deux plot différents sur le même graphique me complique la tâche.

    J'essaie de me battre avec les couleurs aujourd'hui et je reviens vers vous !

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par défaut
    Bon les couleurs c'est pas encore ça...

    J'ai essayé avec des matrices de couleurs mais je crois que je ne maîtrise vraiment pas l'indexation des courbes sur matlab.

    J'utilise la matrice suivante et la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    couleurs = [1 0 0 %r
                0 1 0 %v
                0 0 1]; %b
     
    set(gca,'ColorOrder',couleurs)
    Si j'ai bien compris, les couleurs suivantes sont attribuées dans l'ordre respectif d'apparition de mes courbes ?

    Cependant, vu que je fais 2 itérations avec deux plots différents, 4 courbes sont créées.
    De plus, un plot = une courbe donc une plot(A) et plot (B) créent deux courbes différentes mais avec le même index.

    J'ai essayé de bouger le hold on pour que seule le plot (A) soit affecté par le changement de couleurs mais sans succès.

    Voilà où j'en suis

    Nom : avancement.png
Affichages : 747
Taille : 16,5 Ko

    Je ne comprends pas pourquoi la légende numérique itérations 2 va chercher la couleur noire, alors qu'elle est en rouge.

    Je continue de chercher mais si quelqu'un pouvait proposer des solutions je gagnerais du temps

    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
    figure (5)
     
    for i = 1:2
        legendInfo{i} = ['Numerique iteration ' num2str(i)];
    end
     
    %Expérimental
    [temps]=xlsread('Temps.xlsx');
    [debit]=xlsread('Débits.xlsx');
    debit = smooth (debit); 
    plot(temps,debit,'-k')
     
    hold on
     
    couleurs = [1 0 0 %r
                0 1 0 %v
                0 0 1]; %b
    set(gca,'ColorOrder',couleurs)
     
    %Matlab
    plot(tsim,minj)
     
    xlim([0 0.01])
    ylim([0 25])
    xlabel('Temps [s]')
    ylabel('Debit massique [mg/ms]')
    title('Taux Introduction ')
    legend(['Experimental',legendInfo]);

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2012
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Décembre 2012
    Messages : 97
    Par défaut
    Partons du principe que tes données numériques sont stockées dans une matrice Minj où chaque colonne correspond au vecteur minj calculé pour une itération. Il y a certainement mieux mais je ferai quelque chose comme ceci pour les couleurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    n = nombre_iterations;
    Couleurs = rand(3,n+1);
     
    hold on
    plot(temps,debit,'color',Couleurs(:,1));
     
    for i = 1:n
        plot(tsim,Minj(:,i),'color',Couleurs(:,i+1));
    end
     
    hold off

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par défaut
    J'ai enfin réussi !

    Merci beaucoup Adjen, tous tes conseils mon permis de trouver des solutions à mon problème !
    Encore merci d'avoir dépensé du temps pour moi.

    Voila le code que j'ai utilisé. Lors de la deuxième itérations, il suffit de mettre la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plot(temps,debit,'color',Couleurs(:,1));
    en commentaire pour ne plus avoir de soucis de couleurs dans la légende.

    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
    figure (5)
     
    for i = 1:3
        legendInfo{i} = ['Numerique iteration ' num2str(i)];
    end
     
    %Expérimental
    [temps]=xlsread('Temps.xlsx');
    [debit]=xlsread('Débits.xlsx');
    debit = smooth (debit); 
     
    n = 3;
    Couleurs = rand(3,n+1);
     
    hold on
    plot(temps,debit,'color',Couleurs(:,1));
    plot(tsim,minj,'color',Couleurs(:,i+1));
     
    xlim([0 0.01])
    ylim([0 25])
    xlabel('Temps [s]')
    ylabel('Debit massique [mg/ms]')
    title('Taux Introduction ')
    legend(['Experimental',legendInfo]);
    Bonne continuation à tous.

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

Discussions similaires

  1. [AC-2007] Mise a jour champ formulaire après validation
    Par Gauthier33 dans le forum VBA Access
    Réponses: 2
    Dernier message: 03/02/2015, 16h31
  2. impossible mise a jour interface graphique clamtk
    Par alpha62 dans le forum Linux
    Réponses: 1
    Dernier message: 02/12/2013, 12h07
  3. [XL-2007] Mise a jour graphe automatique apres choix de données
    Par glassgreen13 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 13/07/2010, 17h27
  4. Réponses: 24
    Dernier message: 26/08/2009, 09h38
  5. Mise a jour automatique graphique
    Par Tatouine dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/09/2007, 16h08

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