How to add a x-axis line to a figure? (matlab)

ぃ、小莉子 提交于 2019-12-02 17:39:19

I don't believe there is a built-in way that is more convenient. I use hline() and vline() from FileExchange, which work like a charm:

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

There exist an undocumented function 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');

The nice thing is that it internally implements a listener for the axes limits (handles change like pan, zoom, etc..). So the lines would appear to extend to infinity.

You could get this x range directly after the figure has been created. It goes a little something like this:

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')

Note that if you do any manual zooming out in the figure, the line might have to be redrawn to go over the entire new x range.

A vline and hline command like in GNU R would be great, but I could not find a shorter solution than

plot(1:10,sin(1:10));
line(xlim,[0 0],'Color','r') 
Mota Mota
  1. Draw your data by plot() command or stem(). A figure window will open.
  2. Then on the figure window, click on the [insert] command from the
    menu bar, a drop-down menu will appear.
  3. From this menu click on the [line] command, now the shape of the
    cursor will change into a plus sign.
  4. Now you can draw a line anywhere you want, either horizontal or
    vertical or slanted.
  5. You can change the properties of line by right clicking on the
    line, a menu will appear from which you can choose your desires
    properties.
  6. If you want to have some ticks on the line then you can use add text option, and place text where ever you want.
  7. If you would like to have a code for your figure, click on [file] menu and then click on [generatecode] option, a new text editor
    window will open, you can save this code for further use. Good luck.

Since MATLAB R2018b there is yline for this purpose:

 yline(0)

draws a horizontal line at y==0.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!