How do I assign certain colours to different sections of a 3plot?
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Walter Roberson
2016-4-13
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 个评论
Walter Roberson
2016-4-21
编辑:Walter Roberson
2016-4-21
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);
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Red 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!