matlab画图函数_MATLAB画图技巧与实例(四):填充图area函数

本文介绍了MATLAB中的area函数,用于绘制填充图。内容包括area函数的基本用法,如设置基准面、线型、颜色,并通过多个示例展示了如何绘制不同类型的填充图,包括日期时间轴的应用。此外,还提到了area函数在科研中的广泛应用,并引用了一篇流体力学期刊文章作为示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ed09b737b0def4c6ec9f58341e2b6ed0.png

在科研中,不管是实验数据还是做模拟预测,往往都需要给出数据的置信区间误差限等值,在画图时需给出误差带。此时,就需要用到填充图,在MATLAB中,可以用area函数实现。

1 area函数的基本用法

area(Y)
area(X,Y)
area(...,basevalue)
area(...,Name,Value)
area(ax,...)
ar = area(...)
区域图将 Y 中的元素显示为一个或多个曲线并填充每个曲线下方的区域。如果 Y 为矩阵,则曲线堆叠在一起,显示每行元素占每个 x 区间的曲线总高度的相对量。
area(Y) 绘制向量 Y 或将矩阵 Y 中每一列作为单独曲线绘制并堆叠显示。x 轴自动缩放到 1:size(Y,1)。Y 中的值可以是数值或持续时间值。
area(X,Y) 绘制 Y 对 X 的图,并填充 0 和 Y 之间的区域。X 的值可以是数值、日期时间、持续时间或分类值。
如果 Y 是向量,则将 X 指定为由递增值组成的向量,其长度等于 Y。如果 X 的值不增加,则 area 将在绘制之前对值进行排序。
如果 Y 是矩阵,则将 X 指定为由递增值组成的向量,其长度等于 Y 的行数。area 将 Y 的列绘制为填充区域。对于每个 X,最终结果是 Y 行的相应值的和。您还可以将 X 指定为大小等于 Y 的矩阵。为了避免 X 为矩阵时出现意外输出,请将 X 的列指定为重复列。
area(...,basevalue) 指定区域填充的基值。默认 basevalue 为 0。将基值指定为数值。
area(...,Name,Value) 使用一个或多个名称-值对组参数修改区域图。
area(ax,...) 将图形绘制到 ax 坐标区中,而不是当前坐标区 (gca) 中。
ar = area(...) 返回一个或多个 Area 对象。area 函数将为向量输入参数创建一个 Area 对象。它会为矩阵输入参数的每一列创建一个对象。
创建 m×n 矩阵的区域图会创建 n 个区域序列对象(即每列一个),而 1×n 向量创建一个区域序列对象。 [1]

1.1 示例1

clc
clear all
close all
x = [0:0.01:pi];
y(:,1) = sin(x);
y(:,2) = abs(cos(x));
subplot(1,2,1)
area(y)
xlim([0,314])
subplot(1,2,2)
area(y,-4)
xlim([0,314])

44156c4aa323e596c63633aa248af901.png

这里我们考虑的是 sin(x) 和 |cos(x)| 两个函数。

area函数的默认基准面是x轴,如上左图所示。要想指定特殊基准面,直接在命宁area(y, basevalue)中,指定basevalue的值即可。这里指定值为-4,如上右图所示。

第一个颜色是sin(x)函数与x轴围成的,第二个颜色是在sin(x)函数基本上,叠加|cos(x)|函数围成的,此时最上面的线相当于sin(x) + |cos(x)|。

又一示例如下。

clc
clear all
close all
x = [0:0.01:pi];
y(:,1) = sin(x);
y(:,2) = (cos(x));
area(y)
xlim([0,314])

81f2ed384ac18c4414b1f4ea48ab7d66.png

可以看出,第二个颜色是两个函数之间的填充。

1.2 示例2

area函数x轴是默认的,但是我们也可以指定其他值,可以是数值、日期时间、持续时间或分类值等等。

上图x值已经了,例如日期。

clc
clear all
close all
t = datetime(2021,1,15) + calweeks(0:20);
x = [0:pi/20:pi];
y(:,1) = sin(x);
y(:,2) = abs(cos(x));
subplot(1,2,1)
area(t,y)
subplot(1,2,2)
area(t,y,-4)

1588a55f67fd678b66023c62fbc56bab.png

此时,横轴坐标就是日期了。关于时间用法可以参考帮助文档。[2]

1.3 示例3

area函数默认线型是实线,可以采用 'LineStyle' 命宁直接进行更改。

clc
clear all
close all
x = [0:0.01:pi];
y(:,1) = sin(x);
y(:,2) = abs(cos(x));
subplot(1,2,1)
area(x,y,-0.5)
xlim([0,pi])
subplot(1,2,2)
area(x,y,-0.5,'linestyle','--')
xlim([0,pi])

ca8f2f19d4d7347934fe7c67bf65cd59.png

这里第一个图是默认,第二个图更改为虚线。

1.4 示例四

进一步地,可以更改填充颜色,采用句柄命宁。

如下所示。

clc
clear all
close all
x = [0:0.01:pi];
y(:,1) = sin(x);
y(:,2) = abs(cos(x));
subplot(1,2,1)
h = area(x,y,-0.5,'linestyle','none');
h(1).FaceColor = [0.3 0.8 0.8];
h(2).FaceColor = [0.6 0.2 0.6];
xlim([0,pi])
subplot(1,2,2)
h = area(x,y,-0.5,'linestyle','none');
h(1).FaceColor = [1 1 1];
h(2).FaceColor = [0.6 0.2 0.6];
xlim([0,pi])

da2b43c219e05dbc4bafa339d515a9ec.png

左边我们更改了填充区的颜色。但是科研中,有时候,我们只需要两条线之间填充,第一条线与基底无填充,则使第一填充颜色为白色([1, 1, 1])即可。

2 应用示例

填充图应用非常广泛。

这里给出一篇JFM(流体力学顶刊)的文章截图[3]

194182ea1e57c5ba6fb411776c3eaf9e.png

也是用MATLAB画的。

持续更新,更多文章请见目录

MATLAB画图技巧与实例:目录

Alien:MATLAB画图技巧与实例:目录​zhuanlan.zhihu.com
2cc0b9942b6ff87163539b47fc06a741.png

MATLAB画图技巧与实例(一):常用函数

Alien:MATLAB画图技巧与实例(一):常用函数​zhuanlan.zhihu.com
aff42d403bb7148e88a83d78217e49d9.png

参考

  1. ^https://ww2.mathworks.cn/help/matlab/ref/area.html
  2. ^https://ww2.mathworks.cn/help/matlab/matlab_prog/plot-dates-and-durations.html
  3. ^https://arxiv.org/abs/2007.06228
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值