如何在图形中添加 x 轴线? (matlab)
Posted
技术标签:
【中文标题】如何在图形中添加 x 轴线? (matlab)【英文标题】:How to add a x-axis line to a figure? (matlab) 【发布时间】:2011-12-26 13:56:57 【问题描述】:我想在 Matlab 图形中添加 0 处的 x 轴线,以便在将图形保存为 jpg 时比较我的数据以查看它是正数还是负数。做这个的最好方式是什么?我知道您可以使用line()
,但这似乎很麻烦,因为您需要指定 x 和 y 范围。有没有更简单的方法?
【问题讨论】:
有关垂直线的类似问题,请参阅***.com/q/17798093/7328782。 How to draw horizontal and vertical lines in MATLAB?的可能重复 【参考方案1】:存在一个未记录的函数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');
好消息是它在内部实现了轴限制的侦听器(句柄变化,如平移、缩放等)。所以这些线条似乎会延伸到无穷大。
【讨论】:
看起来我的 Matlab 7.0.1 R14 SP1 版本在我运行您的代码时给我一个分段违规,并且我没有得到 x 轴线。 :( 为什么要投反对票,你的 MATLAB 版本已经很老了,而且事实证明不能运行上述解决方案。另外,正如我所提到的,这是一个未记录的功能 对不起,我不认为它会这样做。我试图撤消赞成票,但它反而导致了反对票。不是很直观.. =/ 现在我不能做任何事情,因为 ans 被锁定,直到帖子被编辑并且我没有编辑权限。 非常好的解决方案!正是我一直在寻找的东西! 更新:不幸的是,该功能在 R2014b(引入了新的 HG2 图形系统)中被删除。【参考方案2】:我不相信有更方便的内置方式。我使用来自 FileExchange 的 hline()
和 vline()
,它们的工作原理非常棒:
http://www.mathworks.com/matlabcentral/fileexchange/1039
【讨论】:
【参考方案3】:您可以在创建图形后直接获取此 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 范围。
【讨论】:
【参考方案4】:像 GNU R 中的 vline
和 hline
命令会很棒,但我找不到比它更短的解决方案
plot(1:10,sin(1:10));
line(xlim,[0 0],'Color','r')
【讨论】:
这是一个非常优雅的方法!【参考方案5】:-
通过
plot()
命令或stem()
绘制数据。将打开一个图形窗口。
然后在图形窗口中,单击中的[插入]命令
菜单栏,会出现一个下拉菜单。
从此菜单中单击 [line] 命令,现在是
光标将变为加号。
现在您可以在任意位置画线,水平线或
垂直或倾斜。
您可以通过右键单击来更改线的属性
行,将出现一个菜单,您可以从中选择您的愿望
属性。
如果你想在线上有一些刻度,那么你可以使用 add
文本选项,并将文本放置在您想要的任何位置。
如果您想为您的人物提供代码,请单击 [文件]
菜单,然后单击 [generatecode] 选项,一个新的文本编辑器
窗口将打开,您可以保存此代码以供进一步使用。祝你好运。
【讨论】:
【参考方案6】:由于 MATLAB R2018b 有 yline
用于此目的:
yline(0)
在y==0
处画一条水平线。
【讨论】:
以上是关于如何在图形中添加 x 轴线? (matlab)的主要内容,如果未能解决你的问题,请参考以下文章