Ответ 1
Я не верю, что есть более удобный способ. Я использую hline()
и vline()
из FileExchange, которые работают как шарм:
Я хочу добавить линию оси x в 0 к фигуре Matlab, чтобы я мог сравнивать свои данные, чтобы увидеть, является ли это положительным или отрицательным при сохранении цифр в jpg. Каков наилучший способ сделать это? Я знаю, что вы можете использовать строку(), но это просто кажется громоздким, потому что вам нужно указать диапазоны x и y. Есть ли более простой способ? Спасибо!
Я не верю, что есть более удобный способ. Я использую hline()
и vline()
из FileExchange, которые работают как шарм:
Существует недокументированная функция graph2d.constantline
:
plot(-2:5, (-2:5).^2-1)
%# vertical line
hx = graph2d.constantline(0, 'LineStyle',':', 'Color',[.7 .7 .7]);
changedependvar(hx,'x');
%# horizontal line
hy = graph2d.constantline(0, 'Color',[.7 .7 .7]);
changedependvar(hy,'y');
Самое приятное, что он внутренне реализует слушателя для ограничений по осям (обрабатывает изменения, такие как панорамирование, масштабирование и т.д.). Таким образом, линии, по-видимому, будут расширяться до бесконечности.
Вы можете получить этот диапазон x сразу после создания фигуры. Это выглядит примерно так:
x=-2:5;
y=x.^2-1;
figure()
plot(x,y);
xlim = get(gca,'xlim'); %Get x range
hold on
plot([xlim(1) xlim(2)],[0 0],'k')
Обратите внимание, что если вы нажмете любое ручное масштабирование на рисунке, возможно, придется перерисовать линию, чтобы перейти во весь новый диапазон x.
A vline
и hline
, как в GNU R, была бы большой, но я не мог найти более короткое решение, чем
plot(1:10,sin(1:10));
line(xlim,[0 0],'Color','r')
plot()
или stem()
. Откроется окно с рисунком.