在MATLAB中绘制带有标签的向量

疯狂的

我有一个带有N个62-D向量的Nx62矩阵和一个带有向量标签的NX1向量。我试图用它们的标签绘制这些向量,因为我想看到这些类在62维空间中绘制时的行为。根据之前引用的NX1矢量的标签,矢量可分为三类。

如何在matlab中做到这一点?当我做plot(vector,classes)时,结果非常奇怪,如何在图表中放置标签?

我用来获取标签,向量和绘图的代码如下:

%labels is a vector with labels, vectors is a matrix where each line is a vector
[labels,vectors]=libsvmread('features-im1.txt');

当我绘制三维矢量时很简单

a=[1,2,3]
plot(a)

然后我得到结果

简单情节

但是现在我有一组向量和一组标签,并且我想查看它们的分布,我想绘制这些标签中的每一个,但也要标识它们的类。如何在Matlab中做到这一点?

编辑:此代码几乎可以正常工作。问题是这样的事实,即对于每个向量和类,绘图都将分配一种颜色。我只想要三种颜色和三种标签,每堂课一种。

[class,vector]=libsvmread('features-im1.txt'); 
%the plot doesn't allow negative and 0 values in the label 
class=class+2; 
labels = {'class -1','class 0','class 1'}; 
h = plot(vector); 
legend(h,labels{class})   
路易斯·门多

如果我正确理解,这就是您想要的:

N = 5;
classes = [1 2 3 1 2]; % class of each vector. Size N x 1
colors = {'r', 'g', 'b'}; % you can also define them numerically
matrix = rand(N,62); % example data. Size N x 62
labels = {'class 1','class 2','class 3'}; % class names. Size max(classes) x 1
h = plot(matrix.');
h_first = NaN(1,3); % initialization
for k = 1:max(classes)
    ind = find(classes==k);
    set(h(ind), 'color', colors{k}) % setting color to all plots of a given class
    h_first(k) = h(ind(1)); % remember a handle of each color (for legend)
end
legend(h_first,labels)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章