MATLAB:单热矩阵到直方图

MATLAB: One-hot matrix to histogram

我有一个单热编码矩阵(大小 1E6 x 10),其中每一行代表一个观察值,每一列代表一个类别。我如何创建一个直方图来可视化每个类别的计数并在 x 轴上标记类别名称(我想垂直放置以防止重叠)而不是仅仅使用列号?

如果您的矩阵是 M,您可以按照烧杯的建议获取逐行总和,并使用它来绘制条形图。 (因为你在谈论标签,所以你不太可能需要这样的 'histogram')。

bar (sum (M, 1));

要将标签设置为名称,您可以编辑生成的坐标区对象的属性:

set (gca, 'xticklabel', {'one', 'two', 'three', 'four', 'five', 'six'});

如果您使用的是 Matlab 2014b 或更高版本,您还可以控制旋转:

set (gca, 'xticklabelrotation', 90);