刘颖慧 发表于 2011-11-8 21:25

关于一个高维的点,用圆形在低维表示的问题

大家好,这样一个问题,比如有一个高维数据集x=(x1,x2,x3,x4),比如含有50个样本,它在二维空间可以任选两维数据,画出来一个点,现在我想以这些点为中心,以半径为r画个圆形来表示,matlab怎么实现画圆的操作呢? 谢谢大家。

ChaChing 发表于 2011-11-9 00:27

???
hh=plot(rand(10,1),'o');
set(hh,'MarkerSize',10)

刘颖慧 发表于 2011-11-9 09:07

回复 2 # ChaChing 的帖子

佩服依旧,我看到您的程序是以一个点为圆心,然后画的圆,10设置的是圆的大小?
因为其实我的向量是高维的,但是我想让它在二维空间显示,所以取了四维中的两维。就是每个点x=(x1,x2)表示,那么怎么以这个x为圆心(有横坐标x1和纵坐标x2)画圆呢?我这里有一段,但是总感觉不太对。
里面的iris数据是matlab自带数据,这一段是可以直接运行的,希望ChaChing帮忙看看
load iris.dat
self=iris(1:50,1:4);
%self=norma(self);
=size(self);
r=5;
for i=1:a
       t=0:0.5:359.5; t=2*pi/360*t;
      x=self(i,2)+r*cos(t);
      y=self(i,3)+r*sin(t);
      plot(x,y,'g-','linewidth',2);
      hold on
end

ChaChing 发表于 2011-11-9 12:01

回复 3 # 刘颖慧 的帖子

本来是以为绘图仅方便可视化, 所以简单使用MarkerSize控制
如LS的例子使用plot(self(:,2),self(:,3),'og','linewidth',2,'MarkerSize',40);即可
LZ可发现圆看来够圆, 但我没找著控制固定半径的方式
若是要控制固定半径, 只得使用LS的方式
我想LZ觉得怪, 是否因看来来够圆? 是吗?
那是因x/y轴不等长, 使用axis equal即可

刘颖慧 发表于 2011-11-9 14:26

回复 4 # ChaChing 的帖子

是的,果然圆形没那么扁了。 谢谢ChaChing!
页: [1]
查看完整版本: 关于一个高维的点,用圆形在低维表示的问题