Plot dashed lines to given y value on a graph

How can I get dashed lines from each axis out to a point at a graph, given by a specified y value?
Somehow i would also like to get the corresponding x value represented.
Thanks for any help. For use in an example:
x = [0:1:25];
y = x * pi ;
plot(x,y)

 Accepted Answer

x = [0:1:25];
y = x * pi ;
stem(x,y, '--')

4 Comments

Somehow i would also like to get the corresponding x value represented.
annotation() maybe? text() maybe?
Rudolf
Rudolf on 20 Apr 2021
Edited: Rudolf on 20 Apr 2021
Stem is only plotting the graph sort of. I was looking for a way to get one dashed line from y-axis, for example at value 30, to go out to where it hits the graph, then a dashed line from this point down to the x-axis. And then in some way represent that x-value. I will check out text(), thanks.
x = [0:1:25];
y = x * pi ;
plot(x, y);
hold on
ytarg = 30;
[~,yidx] = min(abs(y-ytarg));
xtarg = x(yidx);
plot([0, xtarg xtarg], [30 30 0], '--');
text(2, 50, sprintf('x=%g', xtarg), 'HorizontalAlignment', 'center')
plot([2 xtarg], [50 y(yidx)], '-k');
hold off
With this code, you would need to use a finer-grain x to have the points match up better.
You could interpolate to find a more accurate x, but the ease of doing that would depend upon whether the y is monotonic. y is monotonic in this case, so it could be done easily with xi = interp1(y,x,30)
Perfect!! Thank you so much! This solved the challenge.

Sign in to comment.

More Answers (0)

Categories

Asked:

on 20 Apr 2021

Commented:

on 20 Apr 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!