使用向量数据显示流线图
风的映射数据
MATLAB® 向量数据集 wind
代表北美地区的气流。本示例结合使用了几种方法:
利用流线跟踪风速
利用切片平面显示数据的横截面视图
利用切片平面上的等高线提高切片平面着色的可见性
1.确定坐标的范围
加载数据并确定用来定位切片平面和等高线图的最小值和最大值(load
、min
、max
)。
load wind xmin = min(x(:)); xmax = max(x(:)); ymax = max(y(:)); zmin = min(z(:));
2.添加切片平面以提供视觉环境
计算向量场的模(代表风速),以生成用于 slice
命令的标量数据。沿 x 轴在 xmin
、100
和 xmax
处、沿 y 轴在 ymax
处以及沿 z 轴在 zmin
处创建切片平面。指定插补面着色,以切片颜色指示风速,但不绘制边(sqrt
、slice
、FaceColor
、EdgeColor
)。
wind_speed = sqrt(u.^2 + v.^2 + w.^2); hsurfaces = slice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin); set(hsurfaces,'FaceColor','interp','EdgeColor','none') colormap turbo
3.在切片平面上添加等高线
在切片平面上绘制浅灰色等高线以帮助量化颜色映射(contourslice
、EdgeColor
、LineWidth
)。
hcont = ... contourslice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin); set(hcont,'EdgeColor',[0.7 0.7 0.7],'LineWidth',0.5)
4.定义流线的起点
在本示例中,所有流线都从 x 轴上的值 80 处开始,在 y 方向上的范围为 20 到 50,在 z 方向上的范围为 0 到 15。保存流线的句柄并设置线宽和颜色(meshgrid
、streamline
、LineWidth
、Color
)。
[sx,sy,sz] = meshgrid(80,20:10:50,0:5:15); hlines = streamline(x,y,z,u,v,w,sx,sy,sz); set(hlines,'LineWidth',2,'Color','r')
5.定义视图
设置视图,扩展 z 轴以便于观察图形(view
、daspect
、axis
)。
view(3) daspect([2,2,1]) axis tight
有关使用圆锥体绘制相同数据的示例,请参阅 coneplot
。