You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab绘制等高线图时如何对指定区域添加阴影填充

实现方案

场景1:全等高线区域填充阴影

直接使用contourf函数绘制填充层,再叠加上带标注的等高线边框即可,示例代码如下:

sample=xlsread('sample.xlsx');
x=(sample(:,1));
y=(sample(:,2));
z=(sample(:,3));
k=sample(:,4);
N=50;
[X,Y]=meshgrid(linspace(min(x)-0.2, max(x)+0.2, N), linspace(min(y)-0.2, max(y)+0.2, N));

F = scatteredInterpolant(x, y, z);
FF=scatteredInterpolant(x, y, k);
Z= F(X,Y);
ZZ=FF(X,Y);

% 绘制填充层,FaceAlpha控制透明度实现阴影效果
contourf(X,Y,Z,'ShowText','off','FaceAlpha',0.3)
hold on
% 叠绘等高线边框和数值标注
contour(X,Y,Z,'ShowText','on','Color','k')

场景2:仅指定k值区间的等高线区域填充阴影

如果需要根据k的数值筛选填充区域,可通过逻辑掩码结合surf实现,示例代码如下:

sample=xlsread('sample.xlsx');
x=(sample(:,1));
y=(sample(:,2));
z=(sample(:,3));
k=sample(:,4);
N=50;
[X,Y]=meshgrid(linspace(min(x)-0.2, max(x)+0.2, N), linspace(min(y)-0.2, max(y)+0.2, N));

F = scatteredInterpolant(x, y, z);
FF=scatteredInterpolant(x, y, k);
Z= F(X,Y);
ZZ=FF(X,Y);

% 先绘制基础等高线
contour(X,Y,Z,'ShowText','on','Color','k')
hold on

% 自定义要填充的k值区间,可根据需求修改
k_low = 1;
k_high = 3;
% 生成区域掩码
fill_mask = (ZZ >= k_low) & (ZZ <= k_high);

% 填充目标区域,灰色半透明阴影
Z_fill = Z;
Z_fill(~fill_mask) = NaN;
surf(X,Y,Z_fill,'FaceColor',[0.5 0.5 0.5],'EdgeColor','none','FaceAlpha',0.3);
% 调整视角适配2D等高线
view(2)

参数调整说明

  • FaceAlpha参数取值范围为0~1,数值越小阴影越透明,可根据显示效果调整
  • FaceColor参数为RGB三值数组,取值范围0~1,可自定义阴影颜色
  • 如需多区间填充不同样式,重复定义区间掩码和填充逻辑即可

内容的提问来源于stack exchange,提问作者amir1122

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:45:04