在MATLAB图中着色垂直条带区域

时间:2016-08-03 11:14:04

标签: matlab plot

我需要在垂直线之间的MATLAB图中对垂直条带区域进行着色。 我需要遮盖黑色曲线所包围的部分,红色,蓝色和蓝色。绿线。

enter image description here

我尝试了Here

中的示例

如果需要图表的数据,请告诉我我将上传。

2 个答案:

答案 0 :(得分:3)

我认为这就是你要找的东西:

% some arbitrary data
x = -10:0.1:10;
y = abs(x).^0.5;
xleft = 0.5;
xright = 4;
fillStart = find(x>=0.5,1);
fillEnd = find(x>=4,1);
top = 2.5;
% plotting the lines
plot(x,y,'k',...
    x,ones(1,length(x))*top,'r',...
    ones(1,length(y)).*xleft,y,'g',...
    ones(1,length(y)).*xright,y,'b')
hold on
% filling the area
area(x(fillStart:fillEnd),y(fillStart:fillEnd),top, ...
    'EdgeColor', 'none', 'FaceColor', [0.5 0.5 0.5],'ShowBaseLine','off')
hold off

创造了这个:

fill area

答案 1 :(得分:0)

虽然不完全是你所追求的,(你需要各自线条的公式),这样的事情应该有效

x = -5:0.1:5;
y = sqrt(abs(x));
figure
hold on
fill([2, 4, 4, 2], [0, 0, 2, 2], 'g')
plot(x,y)

enter image description here

来自fill文档

  

fill(X,Y,C)填充由向量X和Y定义的2-D多边形       使用C指定的颜色。多边形的顶点       由X和Y的成对对象指定。如有必要,       通过将最后一个顶点连接到第一个顶点来关闭多边形。