グラフィックス オブジェクトへの透明度の追加
透明度とは
グラフィックス オブジェクトの透明度は、そのオブジェクトが透けて見える度合いを決めます。グラフィックス オブジェクトに透明度を追加してチャートの見た目をカスタマイズしたり、通常では隠されているオブジェクトの詳細を見えるようにしたりできます。この表では、不透明な表面と半透明な表面の違いを説明します。
不透明なオブジェクト | 半透明なオブジェクト |
---|---|
|
|
透明度をサポートするグラフィックス オブジェクト
オブジェクトの透明度をコントロールするには、関数 alpha
を使用するか、オブジェクトの透明度に関するプロパティを設定します。一部のグラフィックス オブジェクトではオブジェクトの面とエッジに異なる透明度値を使用することができます。
次の表は、透明度および対応するプロパティをサポートするオブジェクトの一覧です。プロパティを範囲 [0,1]
のスカラー値に設定します。値が 0 であれば完全に透明、値が 1 であれば完全に不透明であることを意味し、0 から 1 の間の値は半透明となります。
透明度をサポートするグラフィックス オブジェクト | 一様な透明度に代わるプロパティ |
---|---|
area | FaceAlpha EdgeAlpha |
bar series | FaceAlpha EdgeAlpha |
scatter series | MarkerFaceAlpha MarkerEdgeAlpha |
bubblechart series | MarkerFaceAlpha MarkerEdgeAlpha |
histogram | FaceAlpha |
histogram2 | FaceAlpha |
chart surface | FaceAlpha EdgeAlpha |
primitive surface | FaceAlpha EdgeAlpha |
patch | FaceAlpha EdgeAlpha |
image | AlphaData |
ヒント
patch、surface、scatter、および image オブジェクトでは、アルファ データを使用してオブジェクト内で透明度を変化させられます。詳細は、アルファ データを使用した透明度の変更を参照してください。
透明度をもつ面グラフの作成
2 つの area オブジェクトのそれぞれの FaceAlpha
および EdgeAlpha
プロパティを設定して 2 つの半透明な面グラフを組み合わせます。
x = linspace(0,10); y1 = 4 + sin(x).*exp(0.1*x); area(x,y1,'FaceColor','b','FaceAlpha',.3,'EdgeAlpha',.3) y2 = 4 + cos(x).*exp(0.1*x); hold on area(x,y2,'FaceColor','r','FaceAlpha',.3,'EdgeAlpha',.3) hold off
透明度をもつ棒グラフの作成
bar series オブジェクトの FaceAlpha
プロパティを 0 から 1 の間の値に設定して半透明な棒グラフを作成します。グリッド ラインを表示します。
month = 1:5; sales = [10 25 85 35 16]; bar(month,sales,'FaceAlpha',.5) grid on
透明度をもつ散布図の作成
青い半透明のマーカーを使用して散布図を作成します。次に、赤い半透明のマーカーを使用して散布図を追加します。scatter series オブジェクトの MarkerFaceColor
および MarkerEdgeColor
プロパティを設定してマーカーの色を指定します。MarkerFaceAlpha
および MarkerEdgeAlpha
プロパティを 0 から 1 の間のスカラー値に設定することにより透明度を指定します。
x = [5 10 11 13 18]; y1 = [40 80 150 80 50]; a1 = 100*[100 50 80 30 50]; scatter(x,y1,a1,'MarkerFaceColor','b','MarkerEdgeColor','b',... 'MarkerFaceAlpha',.2,'MarkerEdgeAlpha',.2) axis([0 20 0 200]) x = [2 6 8 11 13]; y2 = [30 40 100 60 140]; a2 = 100*[30 50 30 80 80]; hold on scatter(x,y2,a2,'MarkerFaceColor','r','MarkerEdgeColor','r',... 'MarkerFaceAlpha',.2,'MarkerEdgeAlpha',.2) hold off
アルファ データを使用した透明度の変更
patch、surface および image オブジェクトには、オブジェクト内でさまざまな透明度を使用するための追加のプロパティがいくつかあります。
image — 各イメージ要素に対して異なる透明度を指定します。
CData
プロパティと同じサイズの配列にAlphaData
プロパティを設定することで値を指定します。chart および primitive surface — 各面およびエッジに異なる透明度を指定します。また、各面またはエッジ間で透明度を内挿するか、均一な透明度を使用するかを指定することができます。まず、
ZData
プロパティと同じサイズの配列にAlphaData
プロパティを設定して透明度値を指定します。次に、FaceAlpha
およびEdgeAlpha
プロパティを'flat'
または'interp'
のいずれかに設定して透明度を均一にするか内挿するか指定します。patch — 各面およびエッジに異なる透明度値を指定します。また、各面またはエッジ間で透明度を内挿するか、均一な透明度を使用するかを指定することができます。まず、
FaceVertexAlphaData
プロパティを patch の面の数 (均一な透明度の場合) または頂点の数 (内挿された透明度の場合) と同じ長さをもつ列ベクトルに設定し、透明度値を指定します。次に、FaceAlpha
およびEdgeAlpha
プロパティを'flat'
または'interp'
のいずれかに設定して透明度を均一にするか内挿するか指定します。scatter プロット — 各マーカーに対して異なる透明度値を指定します。まず、
XData
プロパティと同じサイズの配列にAlphaData
プロパティを設定して透明度値を指定します。次に、MarkerFaceAlpha
またはMarkerEdgeAlpha
のいずれかのプロパティを'flat'
に設定して、均一な透明度を指定します。
AlphaDataMapping
プロパティを使用してオブジェクトがアルファ データ値をどのように解釈するかをコントロールします。詳細については、プロパティの説明を参照してください。
表面グラフの透明度の変更
表面を作成し、z
データの勾配に基づいて透明度を変化させます。各表面の面で均一な透明度を使用するには、FaceAlpha
を 'flat'
に設定します。表面色を青に設定して透明度がどのように変化するか表示します。
[x,y] = meshgrid(-2:.2:2); z = x.*exp(-x.^2-y.^2); a = gradient(z); surf(x,y,z,'AlphaData',a,... 'FaceAlpha','flat',... 'FaceColor','blue')
patch オブジェクト透明度の変更
関数 patch
を使用してラインをプロットします。patch
が閉じた多角形の代わりにラインを作成するよう y
の最後のエントリを NaN
に設定します。
列ベクトルに FaceVertexAlphaData
プロパティを設定して、頂点ごとに透明度値を定義します。AlphaDataMapping
プロパティを 'none'
に設定して、値を透明度値 (0 は透明、1 は不透明) として解釈します。EdgeAlpha
プロパティを 'interp'
に設定して、頂点間の透明度を内挿します。
x = linspace(1,10,10); y = sin(x); y(end) = NaN; figure alpha_values = linspace(0,1,10)'; patch(x,y,'red','EdgeColor','red',... 'FaceVertexAlphaData',alpha_values,'AlphaDataMapping','none',... 'EdgeAlpha','interp')
参考
alpha
| alphamap
| alim
| scatter
| bar
| image
| surf
| patch
| area