Scaling color with selected axis data
Ältere Kommentare anzeigen
I want to plot a function z = f (x,y), but I want the lines (y-axis) to be the color scale.
This is my code:
% parameters
x= [0:1:30]' ;
y= linspace(0.1,10,length(x)) ;
% function
if (x <= max(x)*ones(size(x)) )
z = (x./max(x)).^y ;
else
z = 1 ;
end
% Plot
fig1 = plot3(x,y,z) ;
view([-120 20])
xlabel('x')
ylabel('y')
zlabel('z')
colorbar
2 Kommentare
Rahul Kumar
am 23 Sep. 2019
I think you should change the sequence of plot as x,z,y.
Aikaterini Mountraki
am 23 Sep. 2019
Bearbeitet: Aikaterini Mountraki
am 23 Sep. 2019
Akzeptierte Antwort
Weitere Antworten (1)
Ankit
am 23 Sep. 2019
Hello Aikaterini,
Please try this out:
% parameters
x= [0:1:30]' ;
y= linspace(0.1,10,length(x)) ;
% function
if (x <= max(x)*ones(size(x)) )
z = (x./max(x)).^y ;
else
z = 1 ;
end
% Plot
fig1 = plot3(x,y,z) ;
view([-120 20])
xlabel('x')
ylabel('y')
zlabel('z')
cb = colorbar;
set(gca, 'clim', get(gca, 'ylim'));
set(cb, 'Ticks', get(gca, 'ytick'));
Regards
Ankit
2 Kommentare
Aikaterini Mountraki
am 23 Sep. 2019
Ankit
am 23 Sep. 2019
Just give it a try! here i get the colormap and the later set it to the colorbar. But I dont see the difference Just to give you an Idea!
% parameters
x= [0:1:30]' ;
y= linspace(0.1,10,length(x)) ;
% function
if (x <= max(x)*ones(size(x)) )
z = (x./max(x)).^y ;
else
z = 1 ;
end
% Plot
fig1 = plot3(x,y,z) ;
view([-120 20])
xlabel('x')
ylabel('y')
zlabel('z')
cmap = colormap(gca);
cb = colorbar;
set(gca, 'clim', get(gca, 'ylim'));
set(cb, 'colormap', cmap);
set(cb, 'Ticks', get(gca, 'ytick'));
Kategorien
Mehr zu Color and Styling finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!