How to plot vertical lines?
이전 댓글 표시
This is the script:
x=[0:0.1:10]; x1=5;
plot(x,2*sin(x),x,5*sin(x),x,cos(x));
line([x1 x1],???????);
I would like to plot the vertical line from the top to the bottom without knowing the y-axis limits.
Thanks in advance!
채택된 답변
추가 답변 (5개)
Kelly Kearney
2014년 10월 20일
line([x1 x1], get(gca, 'ylim'));
댓글 수: 5
Brando Miranda
2017년 10월 14일
why does this work?
Image Analyst
2017년 10월 14일
get(gca, 'ylim') gives you a 2 element array with the lower limit on the y axis, and the upper limit on the y axis, whatever they are. The second argument of line is a list of the y values corresponding the x elements, so it will make a line from (x1, lower y limit) to x1, upper y limit).
Alberto Sivera
2021년 11월 16일
thx a lot, you saved my life, really
Image Analyst
2021년 11월 17일
@Alberto Sivera if you have R2018b or later, you should really be using xline() like @Pierre Tallotte shows in his answer below.
xline(x1, 'Color', 'r', 'LineWidth', 2);
Alberto Sivera
2021년 11월 17일
thank you, but unfortunately I have the r2017b version and i'm too lazy to update it :)
Pierre Tallotte
2020년 4월 10일
x=[0:0.1:10]; x1=5;
plot(x,2*sin(x),x,5*sin(x),x,cos(x));
xline(x1);
Image Analyst
2014년 10월 20일
simply pass in ylim for the y array:
line([x1 x1], ylim);
댓글 수: 3
I am having a strange problem. When I draw the line with ylim the y axis automatically resizes such that my line doesn't extend fully to the top. Then when I draw another line with ylim it doesn't do this strange resizing. What could be the problem?
My code:
clf
x=0:0.1:10;
y1 = normpdf(x,5,1.5);
y2 = normpdf(x,6,1.5);
hold on
plot(x,y1)
plot(x,y2)
line([5 5],ylim)
Image Analyst
2017년 7월 27일
Not sure.
ylim() is not returning the correct y axis range limits.
That certainly is weird. I'd call tech support on this one.
Jan
2017년 8월 28일
@Liyuan: See my answer.
Jan
2017년 8월 28일
If the axes is scaled, e.g. when adding new objects or for printing, using the current limits for the Y-position is fragile. You can use much larger positions and exclude the line from the list of objects, which influence the auto-scaling:
YL = get(gca, 'ylim');
YR = YL(2) - YL(1);
YL = [YL(1) - 1000 * YR, YL(2) + 1000 * YR];
line([5, 5], YL, 'YLimInclude', 'off')
'YLimInclude' in undocumented and might be removed in the future.
Jefferson Martinez Saavedra
2020년 10월 23일
0 개 추천
Does someone know how to get/download xline and yline functions? I have R2018a's version of MATLAB.
Thank you in advance.
댓글 수: 1
Image Analyst
2020년 10월 23일
If you dont' have xline and yline you can use line():
xl = xlim;
yl = ylim;
line([x, x], yl); % Old way of doing xline().
line(xl, [y, y]); % Old way of doing yline().
카테고리
도움말 센터 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!