How to plot vertical lines for each data point?

I have a line graph plot which is giving me a correct figure looking like the following:
However, my task is to recreate a zonation simulating the following figure:
I therefore need to add vertical lines to the plot at each data point along the x axis.
Any help would be greatly appreciated.

 Accepted Answer

Combine a plot plot (or a line plot) and a stem plot.
x = 0:10;
y = x.^2;
plot(x, y);
hold on;
stem(x, y, 'Marker', 'none');

More Answers (1)

Check this example
% Example data
x = logspace(0,1,30);
y = log(x);
% plot original line
plot(x,y);
hold on;
% plot vertical lines
line_coordinates = [x' x' zeros(size(x')) y'];
line_coordinates = mat2cell(line_coordinates, ones(numel(x),1), [2 2])';
line_coordinates(3,:) = {'k'};
plot(line_coordinates{:})

3 Comments

My x axis is not consistantly placed
I have 10 data points on the x axis which are as follows:
950:983:1002:1004:1031:1047:1077:1098:1127:1160
So I tried to adapt your suggested code to account for this by replacing the x with my xplot and the y with my y plot. This has not worked and I'm unsure what else to try. Do you have any more suggestions?
Check Steven's answer. It mentions a cleaner solution.
Thank you for your help Ameer!

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!