How do I assign certain colours to different sections of a 3plot?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
shellmcg
le 13 Avr 2016
Modifié(e) : Walter Roberson
le 21 Avr 2016
I have a 4 column matrix. The first column is assigned a number, 99,104 or 115 and the last three columns represents a position x,y,z in a 3D space. Each number in the first column represents a colour, 99-green, 104-red and 115-blue. How could I plot this 3D data with respect to the assigned colours?
0 commentaires
Réponse acceptée
Walter Roberson
le 13 Avr 2016
cmap = zeros(115,3);
cmap(99,:) = [0 1 0]; %99 is green
cmap(104,:) = [1 0 0]; %104 is red
cmap(115,:) = [0 0 1]; %115 is blue
pointsize = 40;
scatter3(YourMatrix(:,2), YourMatrix(:,3), YourMatrix(:,4), pointsize, YourMatrix(:,1));
colormap(cmap);
caxis([1,115])
This makes use of the fact that your particular values are small positive integers, and uses them as indices into a colormap that has been created to have the desired colors at those values. Then it says to map "1" to the bottom color, "115" to the top color -- essentially mapping 1 to 1 for the 115 entry color map.
7 commentaires
Walter Roberson
le 21 Avr 2016
Modifié(e) : Walter Roberson
le 21 Avr 2016
codes = [inf; YourMatrix(:,1); -inf]);
breakpoints = find(diff(codes));
breakpoints(end) = breakpoints(end)-1; %reaches one past end
for K = 1 : length(breakpoints)-1
startpos = breakpoints(K);
endpos = breakpoints(K+1);
plot3(YourMatrix(startpos:endpos, 2), YourMatrix(startpos:endpos, 3), YourMatrix(startpos:endpos, 4), 'color', YourMatrix(startpos,1) );
hold on
end
hold off
colormap(cmap);
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Red dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!