在 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' );
我有一个 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' );