線と線の間の塗りつぶし †2本の直線または曲線を基準に,その間の部分を着色したいときに. 方法(修正) †↓に書いてあるようなことをしなくても,普通に patch を使えば良いということに気づいた. 方法 †適当にデータをつくっておく. clear close all % Sample data x = 0.0:0.01:10.0; x = x'; y1 = -0.75*x+8.0; y2 = -0.20*x+4.0; 塗りつぶすには area を使う. figure ar = area(x,[y1 y2-y1]); % Appearances set(ar(1),'FaceColor','None') set(ar(2),'FaceColor',[0.0,0.2,1.0],'FaceAlpha',0.2); grid on ここで, area(x,[y1 y2]) のように書くと 2本目の基準線が y1 + y2 (累積和) の値になってしまうので, area(x,[y1 y2-y1]) ar(1).FaceColor を None にしないと, ar(1).BaseValue (デフォルトは0) から y1 までの範囲に色が付く. ar(2).FaceColor は目的の着色範囲を示す.色や透過度はお好みで. このような着色に中心線を引くなら次の通り. ymean = mean([y1 y2],2); figure h = plot(x,ymean); hold on ar = area(x,[y1 y2-y1]); % Appearances set(h,'Color','r','LineWidth',1.0) set(ar(1),'FaceColor','None','LineStyle','None') set(ar(2),'FaceColor',[1.0,0.2,0.0],'FaceAlpha',0.2,'LineStyle','None') grid on % Legend le = legend([h,ar(2)],{'Mean','Range'}); set(le,'FontName','Times','FontSize',14) 塗りつぶした面の境界線をいじりたいときは,EdgeColor 等のプロパティを修正する. |