Draw vertical lines on a plot

7 views (last 30 days)
Curious Mind
Curious Mind on 3 Dec 2019
Commented: Luna on 4 Dec 2019
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!

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');

More Answers (1)

the cyclist
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).
Luna on 3 Dec 2019
Check my answer above, I made a sample plot for your case.

Sign in to comment.


Find more on Labels and Annotations in Help Center and File Exchange


Community Treasure Hunt

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

Start Hunting!

Translated by