互换的青春
您可以使用函数FILL完成此操作,以在图的各部分下创建填充多边形。您需要按照希望它们在屏幕上堆叠的顺序绘制线条和多边形,从最底部开始。以下是一些示例数据示例:x = 1:100; %# X rangey1 = rand(1,100)+1.5; %# One set of data ranging from 1.5 to 2.5y2 = rand(1,100)+0.5; %# Another set of data ranging from 0.5 to 1.5baseLine = 0.2; %# Baseline value for filling under the curvesindex = 30:70; %# Indices of points to fill underplot(x,y1,'b'); %# Plot the first linehold on; %# Add to the ploth1 = fill(x(index([1 1:end end])),... %# Plot the first filled polygon [baseLine y1(index) baseLine],... 'b','EdgeColor','none');plot(x,y2,'g'); %# Plot the second lineh2 = fill(x(index([1 1:end end])),... %# Plot the second filled polygon [baseLine y2(index) baseLine],... 'g','EdgeColor','none');plot(x(index),baseLine.*ones(size(index)),'r'); %# Plot the red line这是最终的数字:通过修改axes对象'Children'属性中的控制顺序,可以在绘制对象后更改图形中对象的堆叠顺序。例如,此代码反转堆叠顺序,将绿色多边形隐藏在蓝色多边形后面:kids = get(gca,'Children'); %# Get the child object handlesset(gca,'Children',flipud(kids)); %# Set them to the reverse order最后,如果您不确切地知道要提前堆叠多边形的顺序(即任何一个可能是较小的多边形,您可能想要在顶部),那么您可以调整'FaceAlpha'属性以便一个或两个多边形将显示部分透明,并在其下方显示另一个。例如,以下内容将使绿色多边形部分透明:set(h2,'FaceAlpha',0.5);