带散点图数据的 Matlab“热图”

use*_*089 2 matlab

抱歉,如果这个问题已在其他地方得到解答,但我无法找到解决方案......

我有scatterplot数据、xy、 和颜色数据c(所有这些都是向量)。

x = rand(100,1);
y = rand(100,1);
c = rand(100,1)*50;
scatter(x,y,c,'fill')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是,我想将其显示为“堆图”,这样c它就不再是大小,而是表示强度,看起来像这样: 在此输入图像描述

我不想使用surf并且希望成为这样的 2D。如果您能提供帮助,谢谢。

klu*_*rie 5

要获得所需的曲面图,您需要在 [0,1] 区域上进行插值。使用“scatteredInterpolant”对此效果非常好。

N = 1000;
[Xi,Yi] = meshgrid(linspace(0,1,N),linspace(0,1,N));
SI = scatteredInterpolant(x,y,c);
Ci = SI(Xi,Yi);
imagesc(Ci);
Run Code Online (Sandbox Code Playgroud)

仅 100 个随机点的结果看起来不太平滑,但我认为这就是您正在寻找的! 在此输入图像描述