How to colormap different functions with one gradient?

2 visualizaciones (últimos 30 días)
Niklas Kurz
Niklas Kurz el 1 de Feb. de 2021
Editada: Niklas Kurz el 2 de Feb. de 2021
So carefully I prepared this piecewise function:
u = 0:0.01:2*pi;
v = 2*pi:0.01:4*pi;
w = 4*pi:0.01:6*pi;
f = 1+sin(3*u); %prepare image of first plot
c = -0.2;
a = exp(-(c*2*pi+2*pi));
g = a*exp(c*v+2*pi); %prepare image of second plot
A = a*exp(c*4*pi+2*pi);
h = A+A*sin(3*w); %prepare image of third plot
hold all
plot(u,f,'b-','LineWidth',2.5)
plot(v,g,'r-','LineWidth',2.5)
plot(w,h,'b-','LineWidth',2.5)
grid on
How do I add a total gradient? One plot I can handle but more are challenging me.
  2 comentarios
Jack Shannon
Jack Shannon el 2 de Feb. de 2021
What do you mean by "total gradient"? Do you mean the gradient of each piece of your function?
Niklas Kurz
Niklas Kurz el 2 de Feb. de 2021
Editada: Niklas Kurz el 2 de Feb. de 2021
Kinda: in general applying a total colormap over whole plot

Iniciar sesión para comentar.

Respuestas (1)

Niklas Kurz
Niklas Kurz el 2 de Feb. de 2021
Editada: Niklas Kurz el 2 de Feb. de 2021
So I found a sneaky workaround: just bring it in 3D and apply a simple command
[u,x] = meshgrid(0:0.01:2*pi);
ux = 1+sin(3.*x);
surf(u,x,ux)
hold on
[v,y] = meshgrid(2*pi:0.01:4*pi,0:0.01:2*pi);
vy = a*exp(c*v+2*pi);
surf(y,v,vy)
hold on
[w,z] = meshgrid(4*pi:0.01:6*pi,0:0.01:2*pi);
wz = A+A*sin(3*w);
surf(z,w,wz)
shading interp
colormap('jet')
From side this looks like a twodimensional plot. Wouldn't have to perform all these tricks IF MATLAB WOULD JUST BRING colormap command for 2D plots. I don't freaking understand why they don't.

Categorías

Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by