Adding a color scale to loop script
10 次查看(过去 30 天)
显示 更早的评论
Hey. So I have a loop script plotting lines ontop of each other on the same figure. Its messy but it works.
function TempSalplot(datafile)
datafile=importdata(datafile);
A=datafile.data;
%depth,distance,salinity,temp are in column 28,2,14,11 of datafile respectively;
for z=[1:2:max(datafile.data(:,28))];
for depthi=[1:length(A(:,28))];
if A(depthi,28)>z-0.5 & A(depthi,28)<z+0.5;
B(depthi,1)=A(depthi,2);
B(depthi,2)=A(depthi,14);
B(depthi,3)=A(depthi,11);
%delete zero rows in new matrix 'B'
B(all(B==0,2),:)=[];
% average repeated measurements for same distances
[C,ia,idx]=unique(B(:,1),'stable');
val=accumarray(idx,B(:,2),[],@mean);
M12=[C val];
[C,ia,idx]=unique(B(:,1),'stable');
val=accumarray(idx,B(:,3),[],@mean);
M13=[C val];
M=[M12,M13(:,2)];
end
end
plot(M(:,2),M(:,3),'.-','color',rand(1,3))
hold on
end
end
I would like it, to rather than plot each line with a random colour, to plot each new line according to a colour scale so I can put a color bar on it. Or at least represent that each new line is increasing depth of 1m. Thanks for any help.
2 个评论
Walter Roberson
2015-10-12
At the time of that plot(), which variable holds the depth that you would like to color code by?
采纳的回答
Marius
2015-10-12
Hi Aaron, What I do when I plot many plots in a for-loop (N plots) is first create a "colour matrix" (col) based on a colormap (e.g. 'jet'):
col = jet(N);
for i = 1:N
plot( myXYvals(:,N), 'Color', col(N,:) )
end
Hope this helps, at least giving you an idea... Marius
2 个评论
Alexandar
2022-7-25
^Can somebody help with the question above on how to display the colorbar. I have already looked at multiple questions for displayinc colorbars but none of them work since I am also inputting this into a forloop.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Subplots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!