2017-06-08 1 views
-2

Je veux remplir la zone entre d1 et d3, il fait tout, mais les lignes de l'intrigue disparaissent après la commande de zone.Remplissez la zone entre deux lignes horizontales matlab

fGhz=[1;2;3;4;5;6;7;8;9;10]; 

d1 = ones(10,1)*(600e-6); 
d2 = ones(10,1)*(2000e-6); 
d3 = ones(10,1)*(300e-6); 

plot(fGhz, lambdan_d10,'-ok',fGhz, d1, 'b',fGhz, d3, 'g',fGhz, d2, 'r','LineWidth',2) 

%area([fGhz(1) fGhz(10)],[d1(1) d1(1)],d3(1), 'EdgeColor', 'none', 'FaceColor', [.7 .7 .7]) % plot a line between (x1,y1) and (x2,y2), then fill down to a baseline (6) 
%ylim([0 7e-3]) 
+1

[** 'hold on' **] (https://www.mathworks.com/help/matlab/ref/hold.html)? –

+0

vous avez tellement raison, bien sûr tenir – Bobotic

+0

quelle est la valeur de lambdan_d10? –

Répondre

0

Il est difficile de gérer votre code sans la description de lambdan_d10. Néanmoins, je pense que ce n'est pas crucial pour cette question. Je suppose que c'est comme sinus. Utilisez la fonction de rectangle pour remplir cette zone:

% Your code 
fGhz=[1;2;3;4;5;6;7;8;9;10]; 
lambdan_d10=sin(fGhz).*10^-2.5; 
d1 = ones(10,1)*(600e-6); 
d2 = ones(10,1)*(2000e-6); 
d3 = ones(10,1)*(300e-6); 
plot(fGhz, lambdan_d10) 
plot(fGhz, lambdan_d10,'-ok',fGhz, d1, 'b',fGhz, d3, 'g',fGhz, d2, 'r','LineWidth',2) 
% Fill area 
XLIM=xlim(); 
rectangle('Position',[XLIM(1),d3(1),diff(XLIM),d1(1)-d3(1)],'FaceColor','y','EdgeColor','none') 

De plus, je vous conseille d'avoir un certain modèle pour de tels chiffres de rapports. Mon exemple:

%% >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
%% Parameters 
fGhz = [1;2;3;4;5;6;7;8;9;10]; 
d1 = 600e-6; 
d2 = 2000e-6; 
d3 = 300e-6; 
%% >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
%% Calculations 
lambdan_d10 = sin(fGhz).*10^-2.5; 
%% >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
%% Plot results 
fig1 = figure(); 
hold all 
% plot main information 
plot(fGhz, lambdan_d10,'-ok','LineWidth',2); 
% get plot parameters 
XLIM = xlim(); 
% plot helpers 
plot(XLIM,[d1 d1], '-b','LineWidth',2) 
plot(XLIM,[d2 d2], '-r','LineWidth',2) 
plot(XLIM,[d3 d3], '-g','LineWidth',2) 
rectangle('Position',[XLIM(1),d3(1),diff(XLIM),d1(1)-d3(1)],'FaceColor','y','EdgeColor','none') 
% annotation 
xlabel('Hz') 
ylabel('eggs') 
title('lambda-spam')