在 matlab 中标记 x 轴上的点

Labeling points on the x axis in matlab

我有一个 table,名为“Log_mean”,这是一个简单的例子:

numberID Score Model
1 0.3 a
2 0.2 b

我使用以下代码绘制了 ID 与得分的关系图:

plot(Log_mean.numberID, Log_mean.Score, '--o');
title('Mean of Log scores.')
ylabel('Score')
xlabel('Models')

生成下图:

我的问题是,由于每个圆圈代表特定模型的分数,我是否可以使用 table 中的列模型命名 x 轴上的每个点?

谢谢。

是的,您只需要一个分类轴

xlabs = categorical( Log_mean.Model, Log_mean.Model ); % using the 2nd input preserves ordering

然后就可以画图了

plot( xlabs, Log_mean.Score, '--o' );

如果您想结合模型和 ID,可以通过多种方式实现。像这样的东西会起作用:

xlabs = arrayfun( @(x) sprintf('%d - %s', Log_mean.numberID(x), Log_mean.Model{x}), 1:height(Log_mean), 'uni', 0 );
xlabs = categorical( xlabs, xlabs );

plot( xlabs, Log_mean.Score, '--o' );