MATLAB Answers

# Draw vertical lines on a plot

14 views (last 30 days)
Curious Mind on 3 Dec 2019
Commented: Luna on 4 Dec 2019
Hi,
I have a plot and I want to draw several vertical lines (about 40 of them) at specific locations on the plot. How do I go about it? Any code that I can put all those locations in and automatically mark those regions of the plot with vertical lines for me? Thanks!

#### 0 Comments

Sign in to comment.

### Accepted Answer

Luna on 3 Dec 2019
Edited: Luna on 3 Dec 2019
There is a built-in function for that.
For vertical lines use xline and for horizonal lines use yline.
Here is sample code:
regions_to_be_marked = randn(40,1); % array of the points you want to plot vertical line (x axis values)
x_data = randn(100,1); % x data to plot
y_data = randn(100,1); % y data to plot
hFig = figure; % figure handle
hAxes = axes(hFig); % axis handle
hPlot = plot(hAxes,x_data,y_data,'LineStyle','none','Marker','*'); % your actual plot
hold on; % holds current plot
% plot each region in for loop
for i = 1:numel(regions_to_be_marked)
xline(hAxes, regions_to_be_marked(i),'LineWidth',2,'Color','red');
end

#### 2 Comments

Curious Mind on 3 Dec 2019
Thank you!
Luna on 4 Dec 2019
Your welcome :)

Sign in to comment.

### More Answers (1)

the cyclist on 3 Dec 2019
If you have R2018b or later, you can use the xline command.
If you have an earlier version, you can use the line command (which is just a bit more working in defining the endpoints).

#### 2 Comments

Curious Mind on 3 Dec 2019
Thank you for the information. I have seen the xline function but if I have say 40 regions I want to mark, I will have to do it for each one of them. Is there a way to enter all 40 regions and get those regions marked at the same time?
Luna on 3 Dec 2019
Check my answer above, I made a sample plot for your case.

Sign in to comment.

Sign in to answer this question.

Translated by