그래픽스 객체에 투명도 추가하기
투명도란?
그래픽스 객체의 투명도에 따라 객체를 투시할 수 있는 정도가 결정됩니다. 그래픽스 객체에 투명도를 추가해 차트의 모양을 사용자 지정하거나 투명도를 추가하지 않으면 보여지지 않는 객체에 대한 세부적인 사항을 드러낼 수 있습니다. 다음 표에서는 불투명 곡면과 반투명 곡면의 차이점을 보여줍니다.
불투명 객체 | 반투명 객체 |
---|---|
|
|
투명도를 지원하는 그래픽스 객체
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 객체에서는 알파 데이터를 사용하여 객체 전반에 걸쳐 투명도에 변화를 줄 수 있습니다. 자세한 내용은 알파 데이터를 사용하여 투명도에 변화 주기 항목을 참조하십시오.
투명도를 사용하여 영역 차트 만들기
각 area 객체에 대해 FaceAlpha
속성과 EdgeAlpha
속성을 설정하여 두 개의 반투명 영역 차트를 결합합니다.
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 — 각 이미지 요소에 대해 서로 다른 투명도 값을 지정합니다.
AlphaData
속성을CData
속성과 크기가 같은 배열로 설정하여 값을 지정합니다.chart surface와 primitive surface — 각 면과 가장자리에 대해 서로 다른 투명도 값을 지정합니다. 또한, 각 면 또는 가장자리에 단순 투명도를 적용할지 아니면 보간 투명도를 적용할지를 지정할 수 있습니다. 먼저,
AlphaData
속성을ZData
속성과 크기가 같은 배열로 설정하여 투명도 값을 지정합니다. 그런 다음,FaceAlpha
속성과EdgeAlpha
속성을'flat'
또는'interp'
로 설정하여 단순 투명도 또는 보간 투명도를 지정합니다.patch — 각 면과 가장자리에 서로 다른 투명도 값을 지정합니다. 또한, 각 면 또는 가장자리에 단순 투명도를 적용할지 아니면 보간 투명도를 적용할지를 지정할 수 있습니다. 먼저,
FaceVertexAlphaData
속성을 패치에 있는 면의 개수(단순 투명도를 사용하는 경우) 또는 꼭짓점의 개수(보간 투명도를 사용하는 경우)와 같은 길이의 열 벡터로 설정하여 투명도 값을 지정합니다. 그런 다음,FaceAlpha
속성과EdgeAlpha
속성을'flat'
또는'interp'
로 설정하여 단순 투명도 또는 보간 투명도를 지정합니다.산점도 플롯 — 각 마커에 대해 서로 다른 투명도 값을 지정합니다. 먼저,
AlphaData
속성을XData
속성과 크기가 같은 배열로 설정하여 투명도 값을 지정합니다. 그런 다음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
함수를 사용하여 선을 플로팅합니다. y
의 마지막 항목을 NaN
으로 설정합니다. 그러면 patch
가 닫힌 다각형 대신에 선을 만듭니다.
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