我想在Matlab图中添加一条x轴线,使得在将图保存为jpg时,能够比较我的数据是否为正或负。有什么最好的方法可以实现这一点吗?我知道可以使用 line()
,但似乎很繁琐,因为需要指定x和y的范围。是否有更简单的方法?
我想在Matlab图中添加一条x轴线,使得在将图保存为jpg时,能够比较我的数据是否为正或负。有什么最好的方法可以实现这一点吗?我知道可以使用 line()
,但似乎很繁琐,因为需要指定x和y的范围。是否有更简单的方法?
存在一个未记录的函数 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')
希望有类似于GNU R中的vline
和hline
命令,但我找不到比下面更简短的解决方案:
plot(1:10,sin(1:10));
line(xlim,[0 0],'Color','r')
我不相信有更方便的内置方法。我使用来自FileExchange的hline()和
vline()
,这两者非常有效:
plot()
命令或stem()
命令绘制数据。将会打开一个图形窗口。