Matlab如何在绘图的x轴上添加值

Matlab how to add values in the x-axis of a plot

Plot image

使用`set(gca,'XTick',[1 10 20 50 100])绘制

Plot with set(gca,XTick,[1 10 20 50 100])

嗨,大家好!
我创建了一个具有散点函数的图形,并且在x轴上仅显示了三个值:[1 10 100]。
我想添加一些值,特别是要显示[1 5 10 20 50 100]。
我怎样才能做到这一点?

我的代码是:

1
2
3
4
5
6
7
8
9
line(contrast2*100, RNorm2,'color','black');
hold on
scatter (contrast2*100, RNorm2,'y','filled');
set(gca,'XScale','log')
set(gca,'XTickLabel',num2str(get(gca,'XTick').'))
set(gca,'XTick',[1 10 20 50 100])
set(gca,'YScale','log')
set(gca,'YTickLabel',num2str(get(gca,'YTick').'))
grid on


您要先设置XTick值,然后再设置XTickLabels,因为您是根据XTicks自身的值构造XTickLabels的。

当前正在发生的事情是您有5个XTick值和只有3个标签。 因此,MATLAB将重复您必须为所有XTick位置填充标签的标签。

1
2
3
4
5
6
7
8
9
line(contrast2*100, RNorm2,'color','black');
hold on
scatter (contrast2*100, RNorm2,'y','filled');
set(gca,'XScale','log')
set(gca,'XTick',[1 10 20 50 100])
set(gca,'XTickLabel',num2str(get(gca,'XTick').'))
set(gca,'YScale','log')
set(gca,'YTickLabel',num2str(get(gca,'YTick').'))
grid on

更好的是,没有真正的理由让您在此处手动设置XTickLabel。 如果更改XTick位置,标签将自动更新以反映新位置。

1
2
3
4
5
6
line(contrast2*100, RNorm2,'color','black');
hold on
scatter (contrast2*100, RNorm2,'y','filled');
set(gca, 'XScale', 'log', ...
         'XTick', [1 10 20 50 100], ...
         'YScale', 'log')