我想在Matlab图形上添加一条0处的x轴线,这样在将图形保存到jpg时,我就可以比较我的数据,看看它是正数还是负数。做这件事最好的方法是什么?我知道你可以使用line()
,但是它看起来很麻烦,因为你需要指定x和y的范围。有没有更简单的方法?
发布于 2011-11-11 06:20:37
我不相信有更方便的内置方式。我使用的是来自FileExchange的hline()
和vline()
,它们的工作方式非常棒:
发布于 2011-11-13 08:57:25
存在未记录的函数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-11 20:33:52
您可以在创建图形后直接获得此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范围。
https://stackoverflow.com/questions/8086943
复制相似问题