Я просто столкнулся с той же проблемой.Я переопределил правильные отметки по оси Y, но я хотел сохранить рамку вокруг графика.
Решение состоит в том, чтобы добавить новый axes
поверх тех, которые созданы plotyy
, и установитькоробка этого axes
в "вкл".Однако вы должны убедиться, что в этом поле указаны правильные x-метки и что он не маскирует цвет левой и правой осей Y.
Вот пример графика, на котором показана проблема:
x = 1:10;
y = x.^2;
AX = plotyy(x,y,x,y*3)
set(AX(2),'YTick',0:90:400)
Обратите внимание на дополнительный тик справа.Решение:
set(AX(1),'box','off')
set(AX(2),'box','off')
% create a new axes on top of old ones
new_AX = axes('Position',get(AX(1),'Position'),'XLim',get(AX(1),'XLim'),'YTick',[]);
set(new_AX,'box', 'on')
% reorder things to make y-axes and box visible at the same time
uistack(AX(1),'top')
uistack(AX(2),'top')
set(AX(1),'Color','None')
Примечание. Масштабирование и панорамирование не будут работать правильно после создания этого дополнительного axes
.Кроме того, я тестировал этот код с Matlab2011a, но он может не работать из коробки с другими версиями Matlab.