Для одного набора данных
Это обходной путь, а не решение. lsline
внутренне вызывает refline
, которая строит линию, заполняющую ось в соответствии с их текущими пределами (xlim
и ylim
). Таким образом, вы можете изменить эти ограничения в той степени, в которой вы хотите для линии, позвонить по номеру lsline
, а затем восстановить ограничения.
Пример:
x = randn(1,100);
y = 2*x + randn(1,100); % random, correlated data
plot(x, y, '.') % scatter plot
xlim([-1.5 1.5]) % desired limit for line
lsline % plot line
xlim auto % restore axis limit
Для нескольких наборов данных
В этом случае вы можете применять одну и ту же процедуру для каждого набора данных последовательно, но вам нужно сохранять только один набор данных видимым при вызове lsline
; в противном случае, когда вы вызываете его для создания второй строки, он также создает новую версию первой (с неправильным диапазоном).
Пример:
x = randn(1,100); y = 2*x + randn(1,100); % random, correlated data
h = plot(x, y, 'b.'); % scatter plot
axis([min(x) max(x) min(y) max(y)]) % desired limit for line
lsline % plot line
xlim auto % restore axis limit
hold on
x = 2*randn(1,100) - 5; y = 1.2*x + randn(1,100) + 6; % random, correlated data
plot(x, y, 'r.') % scatter plot
axis([min(x) max(x) min(y) max(y)]) % desired limit for line
set(h, 'HandleVisibility', 'off'); % hide previous plot
lsline % plot line
set(h, 'HandleVisibility', 'on'); % restore visibility
xlim auto % restore axis limit