How to colormap different functions with one gradient?

3 ビュー (過去 30 日間)
Niklas Kurz
Niklas Kurz 2021 年 2 月 1 日
編集済み: Niklas Kurz 2021 年 2 月 2 日
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 件のコメント
Jack Shannon
Jack Shannon 2021 年 2 月 2 日
What do you mean by "total gradient"? Do you mean the gradient of each piece of your function?
Niklas Kurz
Niklas Kurz 2021 年 2 月 2 日
編集済み: Niklas Kurz 2021 年 2 月 2 日
Kinda: in general applying a total colormap over whole plot

サインインしてコメントする。

回答 (1 件)

Niklas Kurz
Niklas Kurz 2021 年 2 月 2 日
編集済み: Niklas Kurz 2021 年 2 月 2 日
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.

カテゴリ

Help Center および File Exchange2-D and 3-D Plots についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by