聚类 轮廓 matlab,通过聚类点matlab着色的等高线图

这基本上是一个关于估计生成数据的概率密度函数,然后以一种良好而有意义的方式将其可视化的问题.为此,我建议使用比直方图更平滑的估计,例如Parzen窗口化(直方图方法的推广).

在下面的代码中,我使用了您的示例数据集,并根据数据范围估算了网格中的概率密度.这里有3个变量需要调整以用于原始数据; Borders,Sigma和stepSize.

Border = 5;

Sigma = 5;

stepSize = 1;

X=[53 58 62 56 72 63 65 57 52 56 52 70 54 54 59 58 71 66 55 56];

Y=[40 33 35 37 33 36 32 36 35 33 41 35 37 31 40 41 34 33 34 37 ];

D = [X' Y'];

N = length(X);

Xrange = [min(X)-Border max(X)+Border];

Yrange = [min(Y)-Border max(Y)+Border];

%Setup coordinate grid

[XX YY] = meshgrid(Xrange(1):stepSize:Xrange(2), Yrange(1):stepSize:Yrange(2));

YY = flipud(YY);

%Parzen parameters and function handle

pf1 = @(C1,C2) (1/N)*(1/((2*pi)*Sigma^2)).*...

exp(-( (C1(1)-C2(1))^2+ (C1(2)-C2(2))^2)/(2*Sigma^2));

PPDF1 = zeros(size(XX));

%Populate coordinate surface

[R C] = size(PPDF1);

NN = length(D);

for c=1:C

for r=1:R

for d=1:N

PPDF1(r,c) = PPDF1(r,c) + ...

pf1([XX(1,c) YY(r,1)],[D(d,1) D(d,2)]);

end

end

end

%Normalize data

m1 = max(PPDF1(:));

PPDF1 = PPDF1 / m1;

%Set up visualization

set(0,'defaulttextinterpreter','latex','DefaultAxesFontSize',20)

fig = figure(1);clf

stem3(D(:,1),D(:,2),zeros(N,1),'b.');

hold on;

%Add PDF estimates to figure

s1 = surfc(XX,YY,PPDF1);shading interp;alpha(s1,'color');

sub1=gca;

view(2)

axis([Xrange(1) Xrange(2) Yrange(1) Yrange(2)])

请注意,此可视化实际上是三维的:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值