How can I fill area above a plot?
Mostrar comentarios más antiguos
Hello, I am trying to fill the area above a curve in my top subplot. I have already filled the area beneath my lower curve but cannot seem to get the area above the upper curve. Both curves are create from sets of data points.
ax1 = subplot(2,1,1);
plot(Freq1,Gain_Upper)
hold on
basevalue = -15;
ar=area(Freq2,Gain_Lower,basevalue);

Respuesta aceptada
Más respuestas (1)
Here you go (applied to fake data); let me know if you have any questions.
% Create fake data
Freq1 = 1:100;
Gain_Upper = linspace(0,-200,numel(Freq1))+rand(size(Freq1))*10;
% plot
figure
ax1 = axes;
plot(ax1,Freq1,Gain_Upper, 'k-','LineWidth',3)
% Form polygon
ceiling = max(ylim(ax1)); %define top of polygon as top of y axis
xp = [Freq1,fliplr(Freq1)];
yp = [Gain_Upper, repmat(ceiling,size(Freq1))];
hold(ax1, 'on')
% Fill area above curve
fill(ax1,xp,yp,'g')
If you'd like to fill the area between two lines use this line instead:
yp = [Gain_Upper, UpperLineValues];
% Where UpperLineValues contain the y coordinates of the upper line

Categorías
Más información sobre Surface and Mesh Plots en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


