線と線の間の塗りつぶし

2本の直線または曲線を基準に,その間の部分を着色したいときに.

方法(修正)

↓に書いてあるようなことをしなくても,普通に patch を使えば良いということに気づいた.

方法

適当にデータをつくっておく.

Untitled
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])
にように書く必要がある.詳しくは area - MathWorks 参照.
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 等のプロパティを修正する.


Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2020-11-13 (Fri) 13:13:20 (1487d)