16

我想在 Matlab 图形中添加 0 处的 x 轴线,以便在将图形保存为 jpg 时比较我的数据以查看它是正数还是负数。做这个的最好方式是什么?我知道你可以使用line(),但它看起来很麻烦,因为你需要指定 x 和 y 范围。有没有更简单的方法?

4

6 回答 6

32

存在一个未记录的函数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');

截屏

好消息是它在内部实现了轴限制的侦听器(句柄变化,如平移、缩放等)。所以这些线条似乎延伸到无穷大。

于 2011-11-13T00:57:25.443 回答
6

我不相信有更方便的内置方式。我使用hline()vline()来自 FileExchange,它的工作原理很吸引人:

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

于 2011-11-10T22:20:37.150 回答
6

您可以在创建图形后直接获取此 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 范围。

于 2011-11-11T12:33:52.483 回答
6

像 GNU R 中的命令vlinehline命令会很棒,但我找不到比它更短的解决方案

plot(1:10,sin(1:10));
line(xlim,[0 0],'Color','r') 
于 2015-03-12T22:25:17.700 回答
0
  1. plot()通过命令或绘制数据stem()。将打开一个图形窗口。
  2. 然后在图形窗口中,单击
    菜单栏中的[插入]命令,将出现一个下拉菜单。
  3. 从此菜单中单击 [line] 命令,现在
    光标的形状将变为加号。
  4. 现在你可以在任何你想要的地方画一条线,无论是水平的、
    垂直的还是倾斜的。
  5. 您可以通过右键单击线条来更改线条的属性,
    将出现一个菜单,您可以从中选择您想要的
    属性。
  6. 如果您想在线上有一些刻度,那么您可以使用添加文本选项,并将文本放置在您想要的任何位置。
  7. 如果您想为您的图形添加代码,请单击 [file] 菜单,然后单击 [generatecode] 选项,
    将打开一个新的文本编辑器窗口,您可以保存此代码以供进一步使用。祝你好运。
于 2015-09-17T11:58:30.293 回答
0

由于 MATLAB R2018b 有yline为此目的:

 yline(0)

在 处画一条水平线y==0

于 2019-03-26T12:54:03.423 回答