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.

 Akzeptierte Antwort

Steven Lord
Steven Lord am 11 Mär. 2020

3 Stimmen

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

Weitere Antworten (1)

Ameer Hamza
Ameer Hamza am 11 Mär. 2020
Bearbeitet: Ameer Hamza am 11 Mär. 2020

0 Stimmen

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 Kommentare

Victoria Wilson
Victoria Wilson am 11 Mär. 2020
Bearbeitet: Victoria Wilson am 11 Mär. 2020
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?
Ameer Hamza
Ameer Hamza am 11 Mär. 2020
Check Steven's answer. It mentions a cleaner solution.
Thank you for your help Ameer!

Melden Sie sich an, um zu kommentieren.

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by