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

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

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

绘图

大家好! 我用散点函数创建了一个图表,在 x 轴上只显示了三个值:[1 10 100]。 我想添加一些值,特别是我想显示 [1 5 10 20 50 100]。 我该怎么做?

我的代码是:

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

您想在 设置 XTickLabels 之前 设置 XTick 值,因为您是根据XTicks 他们自己。

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

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 个位置,标签将自动更新以反映新位置。

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')