2013-07-16 2 views
0

아래 그림의 두 번째 서브 그림에서 빨간색 밴드를 알파 (0.2)와 유사한 불투명도로 투명하게 만듭니다. 그러나matlab : 투명도를 만들면 서브 플로트가 흐트러집니다

http://i.stack.imgur.com/zJjYk.jpg

, I 적색 대역들을 생성하는 다음 코드 후 알파 (0.2)을 호출 할 :

Plotha1 = area([datenum(time(11,1),1,1) datenum(time(15,1),1,1)],[1.3*max(SA(:,2)) 1.3*max(SA(:,2))]); 
set(Plotha1,'BaseValue',1.3*min(SA(:,2)),'FaceColor','r','LineStyle', 'none'); 

Plotha2 = area([datenum(time(4,1),1,1) datenum(time(8,1),1,1)],[1.3*max(SA(:,2)) 1.3*max(SA(:,2))]); 
set(Plotha2,'BaseValue',1.3*min(SA(:,2)),'FaceColor','r','LineStyle', 'none'); 

alpha(0.2); 

세번째 부가 적 줄거리 번째 그림과 같은 빈 간다.

http://i.stack.imgur.com/tjgIT.jpg

세 번째 부가 적 줄거리를 생성하는 코드는 내 코드에서 마지막 제공 : 나는 2 부가 적 줄거리를 생성하는 코드는 마지막 온다하지만 여전히 제 3의 원인 있도록 주위에 물건을 이동 시도

subplot(3,1,3), 

W = zeros(T,1); 

PlotZeros = plot(datenum(time,1,1),W); 
dateFormat = 'yyyy'; 
datetick('x',dateFormat); 
hold on 

PlotResid = plot(datenum(time,1,1),Resid); 

set(PlotZeros,'Color',[0.5 0.5 0.5]); %grey 
set(PlotResid,'Color','blue'); 

axis([datenum(time(1,1),1,1) datenum(time(end,1),1,1) 1.3*min(Resid) 1.3*max(Resid)]) 

hold off 

비어있는 서브 플로트. 누구든지 3 번째 subplot을 방해하지 않고이 밴드들을 투명하게 만드는 방법을 알고 있습니까?

감사합니다.

답변

0

대신 지역 명령의 'facealpha'속성 fill 또는 patch를 사용하여 시도 할 수 :

% x and y vals define the 4 corners of the rectangle 
% (slightly different than "area") 

x_vals=[datenum(time(4,1),1,1) datenum(time(8,1),1,1) ... 
datenum(time(8,1),1,1) datenum(time(4,1),1,1)]; 

y_vals=[1.3*min(SA(:,2)) 1.3*min(SA(:,2)) ... 
1.3*max(SA(:,2)) 1.3*max(SA(:,2))]; 

Plotha2 = fill(x_vals,y_vals,'red','edgecolor','none','facealpha',0.2); 
+0

작품을 완벽하게! 휴! 고마워요! –