如何绘制三个数据集群集

时间:2016-08-18 09:01:26

标签: matlab plot

我一直在使用matlab,我已经设法用两个数据集绘制kmean集群,现在我想做同样但有三个数据集。我是否需要为三个数据集创建三维绘图,或者可以正常绘制它  这就是我为三个数据集所做的工作

    Array=csvread('test.csv');
      dataset = Array(:,[1:3]);
      col1 = Array(:, 1);
      col2 = Array(:, 2);
      col3 = Array(:, 3);
    %dataset [mean+std.deviation *column];
      data1 = [3721.17+3872.307*col1];
      data2 = [3218.28+4754.122*col2];
      data3 = [1541.93+3783.942*col3];
      mydata = [data1, data2 ,data3];



  [idx,C] = kmeans(data,3,'Distance','cityblock',...
       'Options',optns);

我不确定绘制三个数据集kmean集群的最佳方法是什么?我只能使用'plot'或者如果我在3d plot中表示它会更好 以及如何为三个数据集创建三维图

1 个答案:

答案 0 :(得分:0)

我使用以下代码来估算您的情况。请注意,对代码的调用使用mydata,而不是代码中使用的data,因为没有名为data的变量。

Array=rand(100,3);
dataset = Array(:,[1:3]);
col1 = Array(:, 1);
col2 = Array(:, 2);
col3 = Array(:, 3);
%dataset [mean+std.deviation *column];
data1 = [3721.17+3872.307*col1];
data2 = [3218.28+4754.122*col2];
data3 = [1541.93+3783.942*col3];
mydata = [data1, data2 ,data3];

[idx,C] = kmeans(mydata,3,'Distance','cityblock');

然后用3d绘制,用k-means分隔颜色代码,使用scatter3函数。

scatter3(data1,data2,data3,[],idx,'filled');

scatter3(mydata(:,1),mydata(:,2),mydata(:,3),[],idx,'filled');

在第5个输入参数中使用idx将根据它们从kmeans的输出中分组的方式对散点图进行颜色编码。