绘制字符串的分类,matlab

时间:2015-05-25 20:42:42

标签: matlab

编辑:虽然解决方案建议在我有很多长字符串时,这种格式是有问题的,有什么建议吗?

让我们说我已经将M个蜇伤的矢量分类为N组。意味着为每个M字符串分配一个介于1到N之间的数字,表示字符串所属的类别。例如,如果M = 6且N = 3,我可能有:

v = [ 'a' ; 'b' ; 'c' ; 'd' ; 'e' ; 'f' ]
c = [  1  ;  2  ;  1  ;  1  '  3  ;  2  ]

表示a,c和d都归类为“1”组。 “e”被归类为第3组。

我想以某种方式绘制 - 使用Matlab - 这种分类。

我正在尝试以下方面:

plot(v,'b--o')
set(gca,'xticklabel',c.')

但是我需要将情节看起来更像是一个散点图,遗憾的是它似乎散乱不适用于字符串。有什么建议?

另外,字符串向量可能会变长,有人知道如何使图表可滚动吗?

2 个答案:

答案 0 :(得分:1)

以下为您提供一个条形图,其名称为x轴标签。取消注释散点图的另一行。通常,这种可视化可能不是非常多的单词(非常高的M)的正确格式。

v = [ 'a' ; 'b' ; 'c' ; 'd' ; 'e' ; 'f' ];
c = [  1  ;  2  ;  1  ;  1  ;  3  ;  2  ];

bar(c)
% scatter(1:length(c), c) % use this for a scatter plot
set(gca, 'xticklabel', v)

答案 1 :(得分:1)

栏通常很慢。你可以更快速地获得类似的结果,并且没有Matlab通过使用绘图来有趣地分类。

编辑:我想你想要y轴上的字符串。

plot(c,'bo')
ax = gca;
ax.XTick = 1:length(c);
ax.YTick = 0:max(c);
set(ax,'xticklabel',v)
view(-90,90)