Как добавить линию оси X к фигуре? (MATLAB)

matlab matlab-figure

55224 просмотра

6 ответа

1952 Репутация автора

Я хочу добавить линию оси x в 0 к значению Matlab, чтобы я мог сравнить свои данные, чтобы увидеть, является ли он положительным или отрицательным при сохранении рисунков в JPG. Каков наилучший способ сделать это? Я знаю, что вы можете использовать line (), но это кажется громоздким, потому что вам нужно указать диапазоны x и y. Есть ли более простой способ? Спасибо!

Автор: O_O Источник Размещён: 10.11.2011 09:58

Ответы (6)


6 плюса

17900 Репутация автора

Решение

Я не верю, что есть встроенный способ, который более удобен. Я использую hline()и vline()из FileExchange, которые работают как шарм:

http://www.mathworks.com/matlabcentral/fileexchange/1039

Автор: John Colby Размещён: 10.11.2011 10:20

6 плюса

3114 Репутация автора

Вы можете получить этот диапазон х сразу после создания фигуры. Это выглядит примерно так:

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.

Автор: Vidar Размещён: 11.11.2011 12:33

32 плюса

116004 Репутация автора

Существует недокументированная функция 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');

Скриншот

Приятно то, что он внутренне реализует слушатель для ограничения осей (ручки меняются как панорамирование, масштабирование и т. Д.). Таким образом, линии, казалось бы, простираются до бесконечности.

Автор: Amro Размещён: 13.11.2011 12:57

6 плюса

2350 Репутация автора

A vlineи hlineкоманда, как в GNU R, были бы хороши, но я не мог найти более короткое решение, чем

plot(1:10,sin(1:10));
line(xlim,[0 0],'Color','r') 
Автор: Jonas Stein Размещён: 12.03.2015 10:25

0 плюса

6 Репутация автора

  1. Нарисуйте свои данные по plot()команде или stem(). Откроется окно с рисунком.
  2. Затем в окне рисунка щелкните команду [insert] в
    строке меню, появится раскрывающееся меню.
  3. В этом меню нажмите на команду [line], теперь форма
    курсора изменится на знак плюс.
  4. Теперь вы можете нарисовать линию в любом месте, горизонтальном,
    вертикальном или наклонном.
  5. Вы можете изменить свойства линии, щелкнув правой кнопкой мыши на
    строке, появится меню, из которого вы можете выбрать
    свойства ваших желаний .
  6. Если вы хотите, чтобы в строке было несколько галочек, вы можете использовать опцию «Добавить текст» и размещать текст там, где вы хотите.
  7. Если вы хотите иметь код для вашей фигуры, нажмите на меню [файл], а затем на опцию [создать
    код ], откроется новое окно текстового редактора , вы можете сохранить этот код для дальнейшего использования. Удачи.
Автор: Mota Mota Размещён: 17.09.2015 11:58

0 плюса

22210 Репутация автора

Начиная с MATLAB R2018b ylineдля этого есть:

 yline(0)

рисует горизонтальную линию в x==0.

Автор: Cris Luengo Размещён: 26.03.2019 12:54
Вопросы из категории :
32x32