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 :

Obtenir une date avec le data cursor


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Stagiaire assistant ingénieur R&D
    Inscrit en
    Mai 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire assistant ingénieur R&D

    Informations forums :
    Inscription : Mai 2014
    Messages : 54
    Par défaut Obtenir une date avec le data cursor
    Bonjour à tous,

    J'aimerai savoir s'il est possible d'obtenir une date via l'utilisation du data cursor sur un graphe matlab.
    Je m'explique, j'ai une interface graphique qui me permet de suivre certain paramètres d'un moteur au cours du temps. Pour cela j'ai remplacé l'abscisse de mon graphe par les dates :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    plot(Indicateur)
    set(gca,'XTickLabel',Date,'XTickLabelRotation',15)
    Ce que je voudrai maintenant c'est que le data cursor me sorte en Y la valeur de l'indicateur et en X, la date.
    Or il me sort en X le numéro du point.

    Est-il possible de modifier cela ?

    Nom : Capture.PNG
Affichages : 145
Taille : 100,2 Ko

    Merci de vos réponses

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Par défaut
    Bonjour,

    Tu veux le faire directement sur le data cursor?

  3. #3
    Membre éclairé
    Homme Profil pro
    Stagiaire assistant ingénieur R&D
    Inscrit en
    Mai 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire assistant ingénieur R&D

    Informations forums :
    Inscription : Mai 2014
    Messages : 54
    Par défaut
    Oui c'est ca.

    Par exemple sur l'image, j'aimerai obtenir :

    X : 07/05/2015 17:00:00
    Y : 26.75

  4. #4
    Membre émérite
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Par défaut
    Tu peux utiliser ça (ce n'est pas optimisé) :
    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
    function output_txt = myfunction(obj,event_obj)
    % Display the position of the data cursor
    % obj          Currently not used (empty)
    % event_obj    Handle to event object
    % output_txt   Data cursor text string (string or cell array of strings).
    LineH=get(event_obj,'Target');
    XDataV=LineH.XData;
    pos = get(event_obj,'Position');
    IndexX=find(pos(1)==XDataV);
    XTickLabel=get(gca,'XTickLabel');
     
     
    output_txt = {['X: ',(XTickLabel(IndexX,:))],...
        ['iX: ',num2str(IndexX,4)],...
        ['Y: ',num2str(pos(2),4)]};
     
    % If there is a Z-coordinate in the position, display it as well
    if length(pos) > 2
        output_txt{end+1} = ['Z: ',num2str(pos(3),4)];
    end

  5. #5
    Membre éclairé
    Homme Profil pro
    Stagiaire assistant ingénieur R&D
    Inscrit en
    Mai 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire assistant ingénieur R&D

    Informations forums :
    Inscription : Mai 2014
    Messages : 54
    Par défaut
    Je me suis plus ou moins inspiré de ce que tu m'as mis, voila ce que j'en sort :

    La partie du code qui trace le graphique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    p = plot(Indicateur);
    set(gca,'XTickLabel',Date,'XTickLabelRotation',15)
     
    setappdata(0,'Var_date',Date);
     
    dcm_obj = datacursormode(gcf);
    set(dcm_obj,'UpdateFcn',@MyDcmFcn)
    et la fonction appelée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function txt = MyDcmFcn(empt,event_obj)
     
    Date = getappdata(0,'Var_date');
    pos = get(event_obj,'Position');
     
    txt = {['Date: ',char(Date(pos(1)))],...
    	      ['Amplitude: ',num2str(pos(2))]};
    AU final j'obtiens bien le résultat voulu, merci !

    Nom : Capture.PNG
Affichages : 144
Taille : 167,9 Ko

Discussions similaires

  1. Comment obtenir une chaine avec Date/heure ?
    Par Flow_75 dans le forum VBA Word
    Réponses: 4
    Dernier message: 05/05/2008, 16h18
  2. Parser une date avec un format
    Par titoine1978 dans le forum C++
    Réponses: 15
    Dernier message: 03/04/2006, 11h46
  3. Réponses: 10
    Dernier message: 09/01/2006, 18h39
  4. comment obtenir une date dans une storeproc?
    Par Dnx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/10/2005, 15h19
  5. Réponses: 2
    Dernier message: 14/02/2005, 14h26

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