MATLAB中(x、y、z)点的热图或等高线图,是否可以不使用网格功能?

MATLAB中(x、y、z)点的热图或等高线图,是否可以不使用网格功能?,matlab,heatmap,contour,Matlab,Heatmap,Contour,我在这里坐了好几个小时,试图弄明白这一点,但毫无希望。我希望你能帮助我。我在x-y平面上有(x,y)点,每个(x,y)点都有特定的值,你可以把它看作z分量 我能够通过一个简单的matlab函数画出这些点 text(position(1),position(2),num2str(RSRP)) 通过这样做,我得到了下图 我的问题是:我想根据标记值查看热图中的轮廓或颜色,例如,在本图中,点(-400190)周围的某个计数将存在,其值为-117,标记值为-106,而(-300200)处的点将具有另一个

我在这里坐了好几个小时,试图弄明白这一点,但毫无希望。我希望你能帮助我。我在x-y平面上有(x,y)点,每个(x,y)点都有特定的值,你可以把它看作z分量

我能够通过一个简单的matlab函数画出这些点

text(position(1),position(2),num2str(RSRP))
通过这样做,我得到了下图

我的问题是:我想根据标记值查看热图中的轮廓或颜色,例如,在本图中,点(-400190)周围的某个计数将存在,其值为-117,标记值为-106,而(-300200)处的点将具有另一个轮廓,标记值为-106

初步想法:

将其置于(x、y、z)平面,然后投影到二维。但我有问题,因为对于每个(x,y),我有一个值z。我没有相应网格的网格网格函数。非常困惑。多谢各位

我想要下面的那种


事实上,我并不完全理解您试图解决的问题,顺便说一句,我将发布我的航行想法,希望能有所帮助

在下面的代码中,我使用
scatter
plot来表示与您的图形类似的数据

clear 
x = random('Normal',1,10,1,100);
y = random('Normal',1,10,1,100);
[t t_idx] = sort(x);
x = x(t_idx);
c = linspace(1,100,length(x));
scatter(x,y,[],c,'*')

如果这不是你想要的。请添加带有相关代码的数据集示例,这将帮助我们更好地理解您的问题。

此函数是否有助于您?

它将随机x、y位置的数据插值到统一的网格中

我重复了他们给出的例子,并做了如下操作

x = rand([1,50]).*100;
y = rand([1,50]).*100;
%%% z is, say, three gaussians in the xy plane
v = exp(-((x-20).^2+(y-20).^2)./(2*10^2)) + exp(-((x-70).^2+(y-70).^2)./(2*10^2)) + exp(-((x-20).^2+(y-70).^2)./(2*20^2));  
[xq,yq] = meshgrid(1:0.5:100, 1:0.5:100);
vq = griddata(x,y,v,xq,yq);
contourf(xq,yq,vq)
这就产生了以下

在不确定数据是什么/这张图的目标的情况下,我无法评论以这种方式插值数据的“公平性”,但我也用x、y点绘制了这张图,这些点更密集(长度为200比50的向量如上所述),间距均匀,以显示z“应该”是什么样子

正如我们可能猜到的,插值等高线图得到了一些特征,但不是所有特征。最好使用Mohammad的分散建议,因为这将仅代表您拥有的信息,但同样,这取决于您,当然取决于您可视化的类型/目的


为链接的图片道歉/没有评论,我是新来的(这是我的第一个答案!),所以我不能评论或嵌入图片。希望这对我有帮助

谢谢,对不起,它不太清楚。我想要一些类似于我刚才在问题中添加的图2的东西。我提供的图1中*上的不同值将具有不同的轮廓颜色<代码>x=1:10;y=x;[X,Y]=网格网格(X,Y);z=兰特(10,10);轮廓线(X,Y,z,20,'ShowText','on','LineWidth',0.1)