Выровняйте подзаговоры илабела по левой стороне - PullRequest
0 голосов
/ 28 января 2019

В нескольких субплотах оси y у каждого тика субплотов имеют разные значения.Каждый ylabel будет иметь различное выравнивание.Есть ли способ исправить это - выровнять все ylabels по левому краю?

Теперь это возможно только вручную.

figure(1);
subplot 411; plot([1 2],[1 1000]);     ylabel 'Label 1';
subplot 412; plot([1 2],[1 1000]);     ylabel 'Label 2';
subplot 413; plot([1 2],[0.5 0.7]);    ylabel 'Label 3';
subplot 414; plot([1 2],[-5 0.0007]);  ylabel 'Label 4';

Пример

Я ожидал выровнять все ylabel слева.

1 Ответ

0 голосов
/ 28 января 2019

Если вы хотите автоматически выровнять ylabel вашего подзаговора, для этого есть File Exchange script (откуда вы, кажется, взяли пример кода).

С вашим примеромЯ обнаружил, что мне нужно немного изменить код.В файле align_Ylabels.m мне пришлось изменить строку 118 с:

tmp_max(k)  = size(yticks{k},2);

на

tmp_max(k)  = size(char(yticks{k}),2);

Это гарантирует, что он на самом деле проверяет длину символов ваших отметок тика яксиса.

Выполнение вашего примера с последующим сценарием:

figure(1);
subplot 411; plot([1 2],[1 1000]);     ylabel 'Label 1';
subplot 412; plot([1 2],[1 1000]);     ylabel 'Label 2';
subplot 413; plot([1 2],[0.5 0.7]);    ylabel 'Label 3';
subplot 414; plot([1 2],[-5 0.0007]);  ylabel 'Label 4';

align_Ylabels(gcf)

Дает следующий результат:
enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...