Matlab: y-етикетът не се показва в малък прозорец на фигурата

Използвам следния код:

x = linspace(0, 9, 10);
y1 = x;
y2 = x.^2;
y3 = x.^4;

myfig = figure('Position', [500 500 400 320]); %[left, bottom, width, height]:
ax1 = gca;
hold on
p1 = plot(x,y1,'x--r');
p2 = plot(x,y2,'*-b');

xlabel('blaaa');
ylabel('fooo'); 
xlim([0 max(x)]);
ax2 = axes('Position',get(ax1,'Position'),...
       'XAxisLocation','top',...
       'YAxisLocation','right',...
       'Color','none',...
       'XTickLabel', [],...
       'XColor','k','YColor','k');
ylabel(ax2, 'asdasd');
linkaxes([ax1 ax2],'x');
hold on
p3 = plot(x,y3,'s:g','Parent',ax2);

legend([p1 p2 p3], {'one', 'two', 'three'}, 'Location', 'NorthWest');

като има предвид, че десният y-етикет не е показан: Има ли начин да го покажете чрез намаляване или на полето между левия ръб и левия y-етикет, или чрез намаляване на ширината на действително изчертаните данни, без да преоразмерявате прозореца на фигурата?

Благодаря

Редактиране: Добавено изображение:

въведете описание на изображението тукИли намалете червеното поле, или „зеления“ размер, защото там, където е синята стрелка, y-етикетът вече не се показва, тъй като не пасва!


person tim    schedule 04.07.2011    source източник
comment
не искам да изпълнявам кода. можеш ли да добавиш фигура?   -  person    schedule 04.07.2011
comment
@d00b: Добавих един, благодаря предварително!   -  person tim    schedule 04.07.2011


Отговори (1)


Опитайте да замените реда:

ax1 = gca;

с:

ax1 = axes('Position',[0.11 0.11 0.75 0.812]);

За ръчно задайте позиция/размер на оста в нормализирани единици.

въведете описание на изображението тук

person Amro    schedule 04.07.2011
comment
Благодаря, изглежда работи, не знаех, че можете лесно да настроите първите оси! - person tim; 04.07.2011