我想在matlab中创建一个5维绘图。我的工作区中有两个文件。一个是数据(150 * 4)。在这个文件中,我有150个数据,每个数据有4个功能。由于我想对它们进行分类,我有另一个名为“labels”(150 * 1)的文件,其中包含数据文件中每个数据的标签。换句话说,标签是数据类,我有3个类:1,2,3 我想绘制这个分类,但我不能......
娜丽丝
答案 0 :(得分:1)
您可以使用scatter3
绘制数据,使用data
作为维度的三个要素,第四个作为颜色,将类作为不同的标记
figure,hold on
markerList = 'o*+';
for iClass = 1:nClasses
classIdx = dataClass==iClass;
scatter3(data(classIdx,1),data(classIdx,2),data(classIdx,3),[],data(classIdx,4),...
'marker',markerList(iClass));
end
使用颜色表示其中一项功能时,我建议使用好的色彩映射,例如Matlab文件交换中的pmkmp而不是默认的jet
。
或者,您可以使用例如mdscale
将您的高维数据转换为2D以进行标准绘图。
答案 1 :(得分:1)
你需要考虑一下你想看到什么样的情节。 5个维度很难想象,除非您的超维监视器正常工作。我从未从维修店回来过。 (这应该教会我把它发送出来。)
严重的是,5维数据确实难以可视化。通常的解决方案是在2维空间中绘制点(例如,图形的屏幕坐标。这是图基本上所做的。)然后使用绘制的点的各种属性来显示其他三个维度。这就是切尔诺夫面对你做的事。如果你有stats工具箱,那么它看起来像glyphplot会帮助你。或者您可以在3-d中绘图,然后使用两个属性来显示其他两个维度。
另一个想法是在2-d中绘制点以显示两个维度,然后使用颜色来指示其他三个维度。因此,分配给该标记的RGB将由其他三个维度定义。当然,这意味着您必须能够可视化颜色的RGB坐标代表什么,因此您需要了解在RGB空间中表示的颜色。
答案 2 :(得分:0)
有一个名为SOM(自组织地图)的模型,它可以构建多维空间的二维图像。