MATLAB: Shade below a graph above certain value

shade under graph

Hi,
I'd like to add shade into the region right of the vertical line and below the graph. I have a set of data y, the code is following:
figure;
hold all
[p, q] = ksdensity(y)
plot(p, q)
y_star = 1.5;
line([y_star, y_star], get(gca, 'ylim'));
Thank you very much!
uniform_c1.jpg

Best Answer

Yopu did not choose to share the data that created ‘p’ and ‘q’, so I created my own functions to test this code:
p = linspace(-3, 6); % Create Data

q = exp(-p.^2/5); % Create Data
figure
plot(p, q)
y_star = 1.5;
line([y_star, y_star], get(gca, 'ylim'));
hold on
yq = find(p <= y_star, 1, 'last');
patch([p(yq:end) fliplr(p(yq:end))], [zeros(1,numel(p(yq:end))) fliplr(q(yq:end))], 'g')
hold off
This should work with your ‘p’ and ‘q’ vectors. Choose the colour you want for the patch area.