Bonjour,
Je cherche à faire afficher les coordonnées d'espèces sur une carte avec une couleur différente par espèce :
Je vais chercher mes données dans une excel :
Les noms d'espèce ressemble à : Sa Pm Lh
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 [filename, pathname] = uigetfile('*.xls','Ouvrir le fichier Excel'); route = [pathname filename]; [status,sheets]=xlsfinfo(route); if length(sheets)==1 [num,txt,raw]=xlsread(route); else sht=listdlg('Liststring',sheets,'Promptstring',['Ouvrir la feuille de ' filename],'ListSize',[180 100],'Selectionmode','single'); [num,txt,raw]=xlsread(route,sheets{sht}); end % Nombre de rencontre par espèce Espece = raw((2:end),7); % toutes les rencontres espèces Esp_Uniq = unique(Espece); % nom des espèces observées
Pour le moment je n'ai que 7 espèce rencontrées mais je peux avoir au final jusqu'à 15 espèces différentes
Ensuite je récupère les coordonnées
Je cherche un code pour automatiser car le nombre d'espèce peut changer et donc leur position dans la liste unique aussi...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Xcdn = num(:,4); % Coordonnées X Ycdn = num(:,3); % Coordonnées Y % Sa Sa = strcmp(Espece,'Sa'); % indice Sa X_coord_Sa = Xcdn(Sa); % coordonnées des obs Sa Y_coord_Sa = Ycdn(Sa); % Pm Pm = strcmp(Espece,'Pm'); % indice Sa X_coord_Pm = Xcdn(Pm); % coordonnées des obs Sa Y_coord_Pm = Ycdn(Pm);
Je sèche un peu.
J'ai pensé assigner une valeur, et utiliser un switch, mais je ne vois pas comment assigner une valeur a un texte tout en connaissant le texte après coup.
En gros il me faudrait une sorte de légende sur la carte pour retrouver quelle couleur pour quelle espèce !
Pour le plot d'une espèce (Sa) je fais :
Pour une c'est facile, mais j'aimerais l'automatiser car ma BDD change à chaque jour...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 figure(2) k=imread('CartePm1.jpg'); b=flipud(k); image([-62.216 -61.545],[15.785 16.59],b); set(gca,'Ydir','Normal'); hold on scatter(X_coord_Sa,Y_coord_Sa,15,'r','filled') daspect([0.901 1 0.901]) title(['Répartition des individus'],... 'FontSize',12,'FontWeight','bold');
Please Help ! Mon cerveau boite en ce moment !
Partager