在绘制MATLAB 图时,想表示不同的阶段,所以将其中一部分用阴影颜色强调出来,因此进行了一下绘制图像的知识补充。
其中想要的效果是类似于下面这张:
具体如何实现呢,有两种方式。
(看完别忘记点赞哟)
一、最简便快捷方式
利用MATLAB里面的图里面的插入,插入一个矩形,然后更改透明度可以实现。
但是这种方式的话曲线是在矩形的后面,不是很清晰。于是从原理出发,找到第二种方式。
二、最普通常规方式
使用 patch 函数即可,利用这个函数确定好对应的各个多边形的顶点坐标(注意:绘制的图像就是按照你列出的顶点坐标依次连接形成的多边形即可,因此如果坐标前后顺序不一样 可能画出来的图像也不同),具体的函数说明可以参考MATLAB中patch的说明即可。
具体的例子:
创建一个红色正方形,顶点位于 (0,0)、(1,0)、(1,1) 和 (0,1)。将 x 指定为顶点的 x 坐标,并将 y 指定为 y 坐标。patch 会自动将最后一个 (x,y) 坐标与第一个 (x,y) 坐标连接。
x = [0 1 1 0];
y = [0 0 1 1];
patch(x,y,'red')
或者指定面和顶点
v = [0 0; 1 0; 1 1; 0 1];
f = [1 2 3 4];
patch('Faces',f,'Vertices',v,'FaceColor','red')
详细的可以看官方的介绍说明即可,可以多个的多边形也可以是某个特定多边形都可以。
如果想曲线浮于阴影之上,先画出来阴影再次重现绘制曲线即可。
figure;
plot(t,VarName16,'DisplayName','R');hold on;
xlabel('Time /s','FontSize',14);
ylabel('F','FontSize',14);
limy = 3;
v2 = [10.04 -140; 10.22 -140; 10.22 20;10.04 20];
f2 = [1 2 3 4];
patch('Faces',f2,'Vertices',v2,'FaceColor','green','FaceAlpha',.3,'EdgeColor','none');
hold on
plot(t,VarName16,'DisplayName','R');hold off;
参考:
MATLAB 绘图添加区域阴影
此外还能用面积填充图作为标记,比如这里用两个颜色说明横轴上下的面积
使用 area 函数即可