plot3+color

来源:互联网 发布:河北软件学院 编辑:程序博客网 时间:2024/05/16 01:58

Q:I have a [N,4] data set which I want to visualize as 3d line representing the fourth column as a color. Any ideas on how to do this?


A: Simplest solution is to make a scatter plot rather than a line plot:

</pre>
% Make some fake datax = linspace(0,1);  % x = data(:,1);y = cos(10*x);      % y = data(:,2);z = sin(15*x);      % z = data(:,3);c = x+y-z;          % c = data(:,4);figurescatter3(x,y,z,2,c)colorbar

If, however, you really need lines, you probably need to brute-force it.

figurecmap = colormap;% change c into an index into the colormap% min(c) -> 1, max(c) -> number of colorsc = round(1+(size(cmap,1)-1)*(c - min(c))/(max(c)-min(c)));% make a blank plotplot3(x,y,z,'linestyle','none')% add line segmentsfor k = 1:(length(x)-1)    line(x(k:k+1),y(k:k+1),z(k:k+1),'color',cmap(c(k),:))endcolorbar

Here I'm using the default colormap for the figure to define the colors. You can specify colors however you want, as long as you have a way to index into them.


Qer: Excelent solution, I would only like to add a change in the colorbar limits

caxis([ min(c) , max(c)]) % colorbar limits 

reference:

http://www.mathworks.com/matlabcentral/answers/34750-plot3-color


0 0