How can I plot multiple 2d plots with a z value that changes the value of each line?
    4 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Alessandro Maria Laspina
 am 15 Jan. 2021
  
    
    
    
    
    Bearbeitet: Alessandro Maria Laspina
 am 16 Jan. 2021
            Hello,
I have x, y and z data. I would like to plot x and y data for all different z values using plot, and vary each line color based on the corresponding z value. I want to specfically use plot so that I may use straight lines, and so I am not interested in using scatter, nor contour. 
For example...
colormap(jet(3))
hold on
plot(linspace(0,10),linspace(0,10)+1)
plot(linspace(0,10),2.*linspace(0,10)+1)
plot(linspace(0,10),.25.*linspace(0,10))
hold off
hc=colorbar;
cb=1:5:10;
set(hc,'YTick',cb, 'YTickLabel', {'1','5','10'})
This will return...

which is not what I want for multiple reasons. First, the lines do not match the jet colormap settings I have inputted. Second, the colorbar does not have all the tick labels. How can I fix this so that the color of the plot lines matches the colorbar and the  ytick labels are shown correctly? 
0 Kommentare
Akzeptierte Antwort
  Mathieu NOE
      
 am 15 Jan. 2021
        hello Alessandro 
check this please 
n = 3;
z = [1 2 0.25]';
z = sort(z,'ascend');
x = linspace(0,10);
y = z*x;
data_min = min(y,[],'all');
data_max = max(y,[],'all');
map = colormap(jet(n));
[mmap,nmap] = size(map);
hold on
for ci = 1:n
    h = plot(x,y(ci,:));
    set(h, 'Color', map(ci,:)) ;
end
hold off
hc=colorbar;
cb=(1/(2*n):1/n:1);
set(hc,'YTick',cb, 'YTickLabel', num2str(z))
hc.Title.String = "Z range";
2 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Discrete Data Plots finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!