Предотвратить данные от касания осей - PullRequest
0 голосов
/ 31 октября 2018

В MATLAB возможно ли быстро / кратко увеличить отступ по умолчанию для данных в графиках? Другими словами, я не хочу, чтобы данные были слишком близко к осям.

enter image description here

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Этот подход похож на @ jodag превосходный ответ и полностью является моим предпочтением . Размещение этого на основе запроса ОП в комментариях. Я не сомневаюсь, что могут быть более эффективные способы сделать это.

Ключевая идея: Автоматизация использования xlim и ylim.

Минимальный рабочий пример:

d = 0.10;     % 10 percent
c = [1-d 1+d];
X = 5 + 5*rand(10,2);

plot(X(:,1),X(:,2),'rs')

Xrng = xlim;
Yrng = ylim;
xlim(c.*Xrng);  % Adjust X Range
ylim(c.*Yrng);  % Adjust Y Range

Другие способы автоматизировать это, используя следующие свойства:

  1. Используйте маркер для сюжета h = plot() и измените свойства
  2. Используйте команды set, get и gca.

Без сомнения, есть и другие подходы.

0 голосов
/ 01 ноября 2018

Если достаточно просто дополнить существующую ось, то должно работать следующее. Скажем, вы хотите добавить 10% к каждой стороне.

plot(...);
scale = 1.1;
ax = axis();
xc = 0.5 * (ax(1)+ax(2));
yc = 0.5 * (ax(3)+ax(4));
c = [xc,xc,yc,yc];
axis(scale * (ax - c) + c);
...