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 :

probleme couleur scatter


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Australie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Octobre 2014
    Messages : 74
    Par défaut probleme couleur scatter
    Bonjour a tous

    Je bloque sur un problème stupide.. J'aurais besoin de vos lumières une fois de plus

    Je souhaiterais faire un diagramme de type T/S (température/salinité) avec la fonction scatter :
    donc en ordonnées il y aurait la T°, en abscisse la salinité, et je souhaiterais colorier les points du scatter selon un 3 eme paramètre : le nombre de données qui correspondent a chaque point à cette T° et cette salinité donnée

    Et donc j'ai une structure sur matlab avec un vecteur T°, un vecteur salinité mais le probleme c'est que je n'arrive pas a "calculer/ecrire" le 3 eme parametre

    en fait pour etre plus clair : quand je fais par exemple un HISTOGRAMME de ma salinité en ordonnée Matlab me met AUTOMATIQUEMENT le nombre de données qui correspondent a une salinité données (par ex : 30 données pour une salinité de 34)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nbins = 30
    hist(sal,nbins)
    Et bien c'est un peu ca que je souhaiterais retrouver dans le scatter.. dire a matlab que la couleur des points doit correspondre au nombre de données qui ont une salinité precise et une T° precise.

    Parce que pour l'instant je n'arrive qu'a faire des scatter avec 3 paramètres connus (salinité, T° et profondeur par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scatter(sal,temp,5,profondeur,'filled');
    Or je ne veux pas des couleur de points en fonction de la profondeur du point mais en fonction du nombre de données qui ont une salinité X et une Temperature Y

    J'espere que vous comprendrez tout ce charabia!!
    merci bcp

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 885
    Par défaut
    salut

    regarde la fonction histc pour récuperer les nombres

    sinon tu fais un vecteur d'index logique, que tu somme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    index = (temp==12) && (sal == 34);
    num = sum(index(:)); % (:) au cas ou temp et sal soient des matrices
    fabien

  3. #3
    Membre confirmé
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Australie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Octobre 2014
    Messages : 74
    Par défaut
    Nom : tsdiagram.png
Affichages : 594
Taille : 52,1 Ko


    Bonjour Fabien,

    Non je ne peux pas vraiment faire ta méthode parce que j'ai des milliers de T° et de salinité en fait! pas juste 34 et 12°C
    ces deux vecteurs font 100 000 de longs en gros.

    Si tu regardes l'image en piece jointe, tu vois, je souhaite faire exactement ca
    Donc je n'ai pas de probleme pour les axes des ordonnées et des abscisse car je les ai.. Mais c'est au niveau de la couleur et de la colorbar que je voudrais qu'il y est "nombre de données" pour une temperature et une salinité donnée mais en realité il y a des milliers de T° et salinité differentes

    Je voudrais donc que matlab trouve et compte combient dans mes données il y en a qui ont par exemple une salinité x et une temperature y
    c'est difficile a expliquer par ecrit, je suis dsl!

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 885
    Par défaut
    ce que j'ai écrit hier était l'idée
    la réalisation peut se faire avec des boucle for, ou comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    num = arrayfun(@(x,y) sum(temp==x & sal==y),temp,sal);

  5. #5
    Membre Expert
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Par défaut
    Bonjour,

    Si ta variable est continue, il faut estimer une densité et non un nombre de point prenant la même valeur (car pour une loi continue, la proba que 2 données prennent la même valeur est nulle). Tu peux utiliser un histogramme comme le propose LeFab (effectifs par plages de température), ou un vrai estimateur de densité de type noyau (doc ksdensity) ou ondelette.

    Une fois ces valeurs calculées, il faut créer un vecteur de couleur qui les reflète, et le passer à scatter.

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 885

  7. #7
    Membre confirmé
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Australie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Octobre 2014
    Messages : 74
    Par défaut
    Bonjour

    Hum.. oui ok je comprends ce que vous dites
    J'ai telecharger la fonction ndhist (qui est super au passage)
    mais j'essaie de me concentrer sur "ksdensity"
    je le fait sur mon vecteur sal et mon vecteur temp et ca me donne bien la distribution de probabilité pour la température & la densité...
    donc si je comprends bien et c'est plus logique, c'est CA que je dois entrer en 3eme paramètre dans le scatter, c'est pas vraiment le "nombre de profile" mais plutot "la probabilité qu'un profile ait cette T° et cette densité"
    Mais du coup j'ai une question stupide: comment faire pour récupérer les données de la fonction ksdensity? et ne pas avoir simplement le plot?
    Merci a vous en tour cas

Discussions similaires

  1. Probleme couleur de lignes dans un JTable
    Par hlimaiem dans le forum Composants
    Réponses: 6
    Dernier message: 19/09/2006, 22h28
  2. Probleme couleurs visual studio..
    Par wareq dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 17/03/2006, 17h15
  3. Probleme couleure de fond d'une JFrame
    Par daninho dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 02/02/2006, 16h10
  4. [VBA-E] Probleme couleur macro
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/09/2005, 11h11
  5. [Forms6i]probleme couleur
    Par orcl dans le forum Forms
    Réponses: 2
    Dernier message: 25/05/2004, 18h18

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