在绘图中添加垂直线?

7798次浏览(过去30天)
菲利浦
菲利浦 2011年2月25日
评论道: 沃尔特·罗伯森 2020年10月25日
你好,
有人能告诉我如何在指定的样本点上添加一条垂线吗?例如,我有一个强度值为1x41的矢量,我想在中心样本(样本号21)上添加一条垂直线。
很多谢谢!

1评论

保罗·席尔瓦
保罗·席尔瓦 2011年2月25日
无花果=图;
hax =轴;
x = 0:0.1:10;
持有在…上
情节(x, sin (x))
SP = 1;%你的观点是这样的
行((SP SP), (hax,“YLim”),“颜色”(1 0 0))

登录评论。

接受的答案

米歇尔·赫希
米歇尔·赫希 2016年1月29日
编辑:米歇尔·赫希 2020年4月2日
这是内置到MATLAB现在,在R2018b!您可以使用 参照线 叶琳 分别创建具有常量x值或y值的直线。
基本用法再简单不过了:
如果你使用的是旧版本,另一个选项是文件交换中的hline和vline: //www.tatmou.com/matlabcentral/fileexchange/1039-hline-and-vline

5评论

显示 2老评论
彼得•贝灵哲酒庄
彼得•贝灵哲酒庄 2020年10月25日
这也可以用于在Z轴上创建垂直线吗?
彼得•贝灵哲酒庄
彼得•贝灵哲酒庄 2020年10月25日
有一个函数调用'zline',但它没有达到我所希望的效果。
基本上,我想在x = 5.5和y = 5.5处给trisurf图添加一条垂线,这条线沿着z轴向上延伸到最大z值(或者一些任意的“最大z值”,60就行了)。
这样的事情可能吗?
沃尔特·罗伯森
沃尔特·罗伯森 2020年10月25日
xline()和yline()具有内置的行为,无论您如何平移或缩放,它们都会显示出来(前提是参考值在范围内)
因为您似乎不需要这种行为,所以可以使用
ZL = zlim ();
行([x x], [y y], [ZL(1), 60])

登录评论。

更多答案(10)

默罕默德
默罕默德 2014年7月8日
Line ([x x], [y1 y2]);是简单的命令;

4评论

显示 1年长的评论
本苗
本苗 2017年12月5日
谢谢!
克莱尔·弗拉斯曼
克莱尔·弗拉斯曼 2018年2月11日
谢谢你!
基督教桑切斯
基督教桑切斯 2020年5月8日
和蔼的

登录评论。


卡弗朗哥
卡弗朗哥 2017年10月26日
编辑:MathWorks支金宝app持团队 2018年11月8日
您可以使用此模式的“绘图”功能绘制水平线或垂直线:
-水平线:
情节(x1, x2), [y y])
-垂直线:
绘图([x x],[y1 y2])
例如,在x = 21处画一条垂直线。使用坐标轴的y轴限制设置y值。
y=ylim;%当前y轴限制
情节([21 21]、[y y (1) (2)))
正如Steven建议的,从R2018b开始,你可以使用“xline”和“yline”函数代替。有关更多信息,请参见:

3评论

朱纳耶德·乔杜里
朱纳耶德·乔杜里 2018年1月30日
这个工作起来棒极了……非常感谢:干杯!!
卡米洛·Malagon分担
卡米洛·Malagon分担 2018年3月19日
这是惊人的! !因为它使线自动覆盖图的数据区域。所以我不需要做额外的工作来寻找这一行应该在哪里开始和结束。它适用于有不同y轴范围的几个不同的图。
爱德华·曼森
爱德华·曼森 2019年8月28日
多么绝对的上帝啊,谢谢

登录评论。


马克
马克 2013年3月12日
编辑:马克 2013年3月12日
可能是最简单的方法:
在需要行“xval”的地方选择x值。选择图形“ymin”上显示的最小y值和图形“ymax”上显示的最大y值。
x=[xval,xval];
y = [ymin ymax];
绘图(x,y)
这个方法的缺陷:如果你使用'-x'或'- ',可能看起来很傻。,这些标记了你在直线上的特定点,但你只有两个(至少它们是端点)。

0评论

登录评论。


史蒂文的主
史蒂文的主 2018年11月1日
如果您使用的是R2018b或更高版本,请使用 参照线 叶琳 函数分别创建具有常量x值或y值的直线。

1评论

加里比基尼
加里比基尼 2019年4月26日
最好的答案!

登录评论。


骑自行车的人
骑自行车的人 2011年2月25日
一个方法:
数字
x=兰特(1,41);
y =一41;
图(x,y,“r”。);
线([x (21) x (21)], 41 [0]);
集(gca),“YLim”41, [0])

0评论

登录评论。


詹姆斯
詹姆斯 2014年3月28日
编辑:詹姆斯 2014年3月28日
有一个很好的答案 http://stackoverflow.com/a/8108766/1194420 为方便起见,重复如下。---
有一个未归档的函数graph2d.constantline:
绘图(-2:5,(-2:5)。^2-1)
% #垂直线
hx=图2D.君士坦丁堡(0,“线型”':'“颜色”,(。7 7 7]);
changedependvar (hx“x”);
% #水平线
hy = graph2d.constantline (0,“颜色”,(。7 7 7]);
changedependvar (hy,“是的”);

2的评论

史蒂文
史蒂文 2015年4月6日
为什么没有关于这个函数的文档?它工作得很好,但很难激励我在代码中添加未归档的方法,以便与他人共享。
本
2016年9月9日
@这是因为未记录的功能可以随时删除,就像这个功能一样。

登录评论。


佩德罗·路易斯Camuñas García-Miguel
也许有点晚了,但我想贡献一下,有一个非常简单的方法来添加垂直线和水平线,你只需要使用一个保持,然后在主图上重叠它们。
在声明原来的情节之前,添加一个hold,以确保它将保留两个情节,然后绘制线条,具有这样的结构:
持有在…上
情节(主要情节)作用
情节([x]、[0 y_max])%垂直线
绘图([o x_max],[y])%水平线
是:
x:水平轴上放置垂直线的位置。
Y:在垂直轴上放置水平线的位置。
X_max:你想让垂直线结束的点。
y_max:您希望水平线结束的点。
我希望这对浏览这个页面的人有用。

2的评论

沃尔特·罗伯森
沃尔特·罗伯森 2018年4月23日
如果你使用line()而不是plot(),那么你就不需要“hold”。Line()是总是添加到当前情节的原语之一;它是“高级绘图例程”,在绘图之前清除当前轴,并需要“保持”。

登录评论。


何塞(10584)
何塞(10584) 2014年7月8日
您可能还对文件交换的GRIDXY感兴趣:

0评论

登录评论。


朱利安·威廉姆斯
朱利安·威廉姆斯 2019年2月9日
额外的小建议,比如你想在图例中标记你的行,以便它有一些意义,或者利用一些易于使用的选项,然后使用"hold",当前轴的ylim和"repmat"是非常有用的。您还可以使用此技术创建多个具有一定间距的垂直线。
数字
%做一些说明
T = 1000;
一个= 0.7;
h = [];
0.05 Y = cumsum(√)。* randn (T, 1));
X = (1: T) / T;
我找= (X >);
Y(I)=Y(I(1));
h(1)=曲线图(X,Y,“- k”“线宽”,2);
持有在…上
dim =得到(gca,“ylim”);
yy=linspace(dims(1),dims(2),100);
xx = repmat (1100);
h(2) =情节(xx, yy,“:r”“线宽”,2);
dim =得到(gca,“xlim”);
xx = linspace (dim (1), (2) dim . *, 100);
yy = repmat (Y(我(1)),1100);
h(3) =情节(xx, yy,“b”“线宽”,2);
网格在…上
G=图例(h,粒子运动的“停车点”“停止值”);
集合(G,“位置”“最佳”“口译员”“乳胶”);
只是一个想法。

0评论

登录评论。


艾德里安•彼得斯
艾德里安•彼得斯 2020年2月8日
对不起,那有什么用 (2:5)。^ 2 - 1做什么?我不知道如何计算^2-1。

2的评论

沃尔特·罗伯森
沃尔特·罗伯森 2020年2月8日
-2:5是-2 -1 0 1 2 3 4 5的列表。^2将列表中的每个元素平方得到4 1 0 1 4 9 16 25。然后每个减1,得到3 0 -1 0 3 8 15 24
艾德里安•彼得斯
艾德里安•彼得斯 2020年2月8日
现在我明白了!非常感谢!

登录评论。

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!