stipple函数的坑......matlab绘制显著点

序:

臭matlab。。。为了画这个显著点我花了一天找数据的问题。。。结果发现只需调下参数就行💩

正文:

1、无投影的二维图像上绘制点

如果在普通二维图像上绘制,直接输入二维坐标,和为要画的点的矩阵。如下例。

注意:mask是一个0/1矩阵,要画的位置为1(显著区域);区域为0。

figure();
[X,Y,Z] = peaks(1000);
pcolor(X,Y,Z);
shading interp;hold on;
mask = Z>2.5;
stipple(X,Y,mask);

2、有投影的地图上绘制显著点

当在投影地图上使用 stipple 绘制显著点时

首先需要将经纬度坐标转换为投影坐标!!!很重要!!

可以使用m_map中的m_ll2xy 函数进行经纬度到投影坐标的转换。

[lx,ly] = m_ll2xy(lon_era5,lat_era5);
stipple(lx,ly,mask,'color','black','marker',".", 'Markersize',3);

lon_era5lat_era5 是经纬度数据,lxly 是转换后的投影坐标。

其次,要通过两个函数来控制点的密集!!!很重要!!

在某些情况下,使用默认设置时,绘制的显著点可能会非常少,甚至只有几个点。这通常是因为 stipple 函数的默认参数设置不适合你的数据分布,导致某些显著点无法显示。可以试一下调节以下参数。

  1. 'density':控制点的密度。增大该值可以使更多的点被绘制。
  2. 'resize':控制点的大小和图像的缩放比例。将其设置为 true 可以自动调整图像的显示。
    [lx,ly] = m_ll2xy(lon_era5,lat_era5);
    stipple(lx,ly,mask,'density',350,'resize',true, ...
        'color','black','marker',".", 'Markersize',3);

参数总结:

  • lxly 是已转换的投影坐标。
  • mask 是用来筛选显著点的逻辑数组。
  • color设置点的颜色.
  • marker使用点符号绘制。
  • Markersize设置点的大小。
  • density控制点的密度
  • resize控制点的大小和图像比例

小结:

使用 stipple 函数时,尤其是在投影地图上绘制显著点时,务必确保将经纬度数据转换为正确的投影坐标

如果绘制出的显著点数量过少,可以通过调整 densityresize 等参数来实现更好的绘制效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值