MATLAB面积图绘图总结

area-填充区二维绘图

MATLAB中文帮助

1 实例1:

想绘制如下断面形状,分析可知,需要两次利用area函数。
MATLAB面积图绘图总结_第1张图片

1.1 单一区域法

  • 河底绘图如下:
    MATLAB面积图绘图总结_第2张图片
    代码如下:
figure(1)
hold on;
h1 = area(X(:,1),X(:,2),basevalue);  
h1.FaceColor = [139 69 19]/255;
h1.EdgeColor = [139 69 19]/255;
axis( [ min(X(:,1)) max(X(:,1)) Hmin Hmax+1] )  ;
% title("控制断面示意图");
xlabel("起点距(m)");
ylabel("河底高程(m)");
box off;
grid off;
set(gca,'Layer','top');
  • 河道绘制如下:
    MATLAB面积图绘图总结_第3张图片
    代码如下:
figure(1)
hold on;
h2 = area( X(index,1), X(index,2) , Z);
h2.FaceColor = [135 206 250]/255;
h2.EdgeColor = [135 206 250]/255;
xlabel("起点距(m)");
ylabel("河底高程(m)");
box off;
grid off;
set(gca,'Layer','top');

两个断面单独绘制,都很容易完成,但是将其组合后,得不到想要的效果。
MATLAB面积图绘图总结_第4张图片

1.2 堆叠区域法

尝试用堆叠区域法,结果如下:
MATLAB面积图绘图总结_第5张图片
代码如下:

figure(2)
hold on;
box off;
grid off;
h = area(X(:,1),[ X(:,2)  Z*index ] ,basevalue);    
h(1).FaceColor = [139 69 19]/255;
h(1).EdgeColor = [139 69 19]/255;
h(2).FaceColor = [135 206 250]/255;
h(2).EdgeColor = [139 69 19]/255;
axis( [ min(X(:,1)) max(X(:,1)) Hmin Hmax+1] )  ;
% title("控制断面示意图");
xlabel("起点距(m)");
ylabel("河底高程(m)");
set(gca,'Layer','top');

问题来了,明明控制了上限,为啥图形中并没有?

2 案例2

参考

你可能感兴趣的:(MATLAB基础处理,#,MATLAB图形绘制技巧,matlab)