Символы сдвигающей оси в подзаголовке Matlab

57
5

На рисунке ниже показана проблема, с которой я сталкиваюсь с перекрывающимися ярлыками оси Y.

Перед попыткой исправить

Result before fix attempt

Чтобы исправить это, я попробовал следующий код (индивидуально для каждого подзадачи, поэтому h1 для подзаголовка 1, h2 для подзаголовка 2 и т.д.),

offset = 0.5
h1 = get(gca,'YLabel');
set(h1,'Position',get(h1,'Position') - [0 0 offset])

Я пытаюсь выполнить смещение 0,1, 0,5, 0,9 или выше; результат всегда следующий:

После попытки

Result after fix attempt

Я использую команду неправильно или есть кадр вокруг каждого подзаголовка, который мешает мне переместить y-метки дальше влево?

спросил(а) 2016-05-26T18:49:00+03:00 4 года, 5 месяцев назад
1
Решение
81

Вы применяете смещение в направлении Z (третий элемент вектора положения, [xyz]). Вместо этого вы хотите применить смещение к 1-му элементу вектора положения, чтобы переместить его в x.

offset = 0.5
h1 = get(gca,'YLabel');
set(h1,'Position',get(h1,'Position') - [offset 0 0])

Также смещение находится в тех же единицах, что и ваша ось x, поэтому вы можете соответствующим образом настроить это. Альтернативно, если вы просто хотите определенный процент заполнения, вы можете использовать xlims для вычисления диапазона оси x и использовать процент от этого.

padPercent = 0.1;
offset = padPercent * diff(get(gca, 'xlim'));

И в качестве примера

axes();
hlabel = ylabel('YLABEL');
offset = 0.075 * diff(get(gca, 'xlim'));
set(hlabel, 'Position', get(hlabel, 'Position') - [offset, 0 0])

enter image description here

ответил(а) 2016-05-26T19:01:00+03:00 4 года, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема