【发布时间】:2019-09-04 06:54:53
【问题描述】:
我正在尝试根据取决于曲线值的函数填充两条曲线之间的区域。
这是我到目前为止所做的代码
i=50;
cc = @(xx,x,y) 1./(1+(exp(-xx)/(exp(-x)-exp(-y))));
n_vec = 2:0.1:10;
x_vec = linspace(2,10,length(n_vec));
y_vec = abs(sin(n_vec));
N=[n_vec,fliplr(n_vec)];
X=[x_vec,fliplr(y_vec)];
figure(1)
subplot(2,1,1)
hold on
plot(n_vec,x_vec,n_vec,y_vec)
hp = patch(N,X,'b')
plot([n_vec(i) n_vec(i)],[x_vec(i),y_vec(i)],'linewidth',5)
xlabel('n'); ylabel('x')
subplot(2,1,2)
xx = linspace(y_vec(i),x_vec(i),100);
plot(xx,cc(xx,y_vec(i),x_vec(i)))
xlabel('x'); ylabel('c(x)')
此代码生成以下图表
我添加的颜色代码表示两条曲线之间区域的每条线(沿 x 轴上的一点处的 y 轴)应采用的颜色编码。
总的来说,整个区域应该用渐变色填充,这取决于曲线的值。
我已协助解决以下先前的问题,但无法解决解决方案
MATLAB fill area between lines
Patch circle by a color gradient
Filling between two curves, according to a colormap given by a function MATLAB
注意:曲线的函数形式并不重要,我更喜欢一个答案,它指的是两个由曲线组成的通用数组。
【问题讨论】:
标签: matlab plot matlab-figure colormap