我有一个使用yyaxis
的双y轴图。我想将XTick
设置为只有整数值,例如1、2、3、4、5、6,而不是1、1.5、2、2.5、3、3.5、4、4.5、5、5.5、6。
使用普通的plot
,我可以使用:
ax = gca;
ax.XTick = unique(round(ax.XTick));
实现这一目标。
但yyaxis
图似乎并非如此。
请帮忙!
更新:这里有一个MWE来说明我的问题:
figure('Position', get(0, 'Screensize'));
max_iter = 100;
A_history = nan(1,max_iter); B_history = nan(1,max_iter);
for iter = 1 : max_iter
yyaxis left;
A_history(iter) = randn(1);
plot(A_history(1:iter), '-ob', 'LineWidth', 0.9, 'MarkerSize', 4.5, 'MarkerFaceColor', 'b');
ylabel('first yaxis');
yyaxis right;
B_history(iter) = randn(1);
plot(B_history(1:iter), '-or', 'LineWidth', 0.6, 'MarkerSize', 3, 'MarkerFaceColor', 'r');
ylabel('second yaxis');
% ax = gca;
% ax.XTick = unique(round(ax.XTick));
pause(1);
end
上面的代码将为第一次迭代创建0、0.1、0.2、0.3、0.4、…、1的xticks
;例如,第二次迭代的xticks为1、1.1、1.2、1.3、1.4、…、2。我想要的是去掉xticks
中的所有非整数值(例如,0.1、…、0.9、1.1、…、1.9(,只留下整数值(如,第一次迭代为0,1;第二次迭代为1,2(
我已经尝试添加注释的2行代码。但不幸的是,他们没有给我预期的结果。更糟糕的是,xticks
会一直变成[0,1]。。。
希望这能让问题描述更清楚。
当您这样做时,它实际上是'XTickMode'
属性,设置为'manual'
:
ax = gca;
ax.XTick = unique(round(ax.XTick));
您可以将其更改回'auto'
,以便在尝试仅保留唯一的四舍五入值之前对新的xticks进行评估。即
ax = gca;
ax.XTickMode= 'auto';
ax.XTick = unique(round(ax.XTick));