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 :

Insérer des noms dans un nuage de points.


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Insérer des noms dans un nuage de points.
    Bonjour a tous,
    je suis nouveau dans l'utilisation de matlab et j'espère que vous allez pouvoir m'aider!

    Je doit réaliser une ACP pour mes études mais je rencontre quelque soucie.

    J'utilise un fichier excel pour importer des données dans le but de pouvoir les analyser par la suite. Par exemple j'ai le nom de plusieurs villes française avec leur pluviosité par mois, de janvier à décembre dans un fichier excel.

    En réalisant mon ACP j'obtiens a la fin du programme un graphe, sur celui ci j'ai un nuage de points et j'aimerai bien que lorsque je place le curseur sur un des points il me donne le nom de la ville en question pour me faciliter l'analyse.
    Mais je ne connais pas la commande qu'il faut que j'utilise.

    Merci d'avance pour votre réponse, si je ne suis pas assez claire poser moi des questions.
    A bientôt.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Bonjour Darkalex,

    voici un bout de code qui permet de faire "en gros" ce que tu veux. Ces deux fonctions récupèrent les coordonnées des points et affichent dans le command window le nom de la ville correspondante.

    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
     
     
    function quelleville
     
    y=[6 3 9 4 0]; % Coordonnées x
    x=[3 2 1 0 4]; % Coordonnées y
     
    h=scatter(x,y); % Nuage de point
     
    set(h,'ButtonDownFcn',@ville); % On appelle la fonction ville au clic de la souris
     
    end
     
     
    function ville(gcbo, eventdata, handles)
     
    nom={'Paris';'Nice';'Lyon';'Arles';'Bordeaux'}; % Nom des villes correspondant aux coord
     
    A=(get(gca,'CurrentPoint')); % On récupère la position du clic de la souris
    a=round(A(1,1)); % Arrondi de la position en x
    b=round(A(1,2)); % arrondi de la position en y
     
    B=get(gca,'children'); % On récupère les paramètres du graphe scatter
     
    % On récupère les données x et y puisqu'elles n'ont pas été défini 
    % dans cette fonction
    x=get(B,'XData');
    y=get(B,'YData');
     
    x1=x==a; % Variable logique sur les vecteurs potitions
    y1=y==b;
    z1=x1.*y1;
     
    res=find(z1==1); % On récupère l'indice de notre ville
     
    disp(nom{res}) % On affiche la ville à l'écran dans le command window
     
     
    %%%%%% Variante d'affichage directement sur le graphe... A décommenter
    % text(x(res)+0.1,y(res)+0.1,nom{res});
     
    end
    Ca n'est pas du tout optimisé je pense... Mais ca te donne un point de départ.

    edit : commentaire sur le code

  3. #3
    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
    Sinon il y a aussi :
    qui me parait plus adapté.

    Et il y a déjà eu des sujets très ressemblants sur le Forum, il faudrait chercher.
    Règles du Forum

    Adepte de la maïeutique

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    C'est vrai caro-line qu'il y a aussi datacursormode, mais ca me parait assez compliqué à comprendre et à mettre en oeuvre si on est débutant en matlab. Du moins pour l'affichage d'un "string" et non pas de coordonnées toutes simples. Pour ce dernier cas, datacursormode est suremment plus adapté.

    edit : lien vers deux autres discussions qui traitent du sujet.

    http://www.developpez.net/forums/d75...souris-figure/

    http://www.developpez.net/forums/d50...-point-graphe/

    PS: ta tortue fait planter mon ordi Caro-Line

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    merci a vous pour ces différentes solution, je vais essayer de partir de la, mais ca ma l'air assez compliqué quand même.
    Je vous tient au courant.

    Donc voila j'ai trouver une solution grâce a un ami, en faite je récupère dans mon fichier excel le nom des villes et avec des boucles for je les places dans mes graphes.
    Ça fonctionne mais esthétiquement c'est pas ce qu'il y a de plus beau.
    J'ai utiliser datacursormode aussi ^^
    merci de votre aide

Discussions similaires

  1. Réponses: 10
    Dernier message: 05/03/2010, 14h37
  2. Détection des phases dans un nuage de point
    Par Victhestatic dans le forum Signal
    Réponses: 2
    Dernier message: 19/01/2010, 11h33
  3. Insérer des lignes dans une StringGrid
    Par da_latifa dans le forum Composants VCL
    Réponses: 1
    Dernier message: 26/09/2005, 12h45
  4. Réponses: 2
    Dernier message: 08/08/2005, 13h54
  5. insérer des images dans une bd postgresql
    Par ephet dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 20/01/2004, 09h18

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