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

时间:2016-03-26 11:35:59

标签: matlab plot matlab-figure scatter

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]。 我怎么能这样做?

我的代码是:

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

1 个答案:

答案 0 :(得分:1)

您希望在设置XTick之前设置XTickLabels,因为您正在根据XTickLabels的值构建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')