使用`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
答案 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')