플롯 색 지정하기
MATLAB®은 디폴트 색 집합을 사용하여 플롯을 만듭니다. 디폴트 색은 사용자가 만드는 다양한 플롯 전반에 명확하고 일관된 모양을 제공합니다. 필요한 경우 색을 사용자 지정할 수 있습니다. 대다수의 플로팅 함수에는 c
또는 colorspec
과 같이 색을 사용자 지정하기 위한 입력 인수가 있습니다. 이러한 함수에서 반환되는 객체에는 일반적으로 색을 제어하는 속성이 있습니다. 인수와 속성의 이름은 달라질 수 있지만, 일반적으로 인수와 속성이 허용하는 값은 일반 패턴을 따릅니다. 패턴에 익숙해지면 이를 사용하여 다양한 플롯을 수정할 수 있습니다.
다음 예제에서는 bar
와 scatter
함수를 사용하여 색을 사용자 지정하는 전반적인 접근 방식을 보여줍니다. 특정 플로팅 함수에 관한 유효한 색 값의 전체 목록은 해당 함수의 문서를 참조하십시오.
색 값의 유형
색 값에는 다음과 같은 세 가지 유형이 있습니다.
색 이름 또는 짧은 이름 — 색 이름을 지정합니다(예:
"red"
또는"green"
). 짧은 이름은 색 이름의 한 문자로 지정합니다(예:"r"
또는"g"
).RGB 3색 — 요소를 3개 가진 행 벡터를 지정하여 사용자 지정 색을 만듭니다. 벡터의 각 요소는 색을 구성하는 빨간색, 녹색, 파란색의 농도입니다. 농도의 범위는
[0,1]
이어야 합니다. 예를 들어, 분홍색 음영은[1 0.5 0.8]
로 지정할 수 있습니다.색을 제어하는 일부 함수 인수는 RGB 3색을 허용하지 않지만, 색을 제어하는 객체 속성은 일반적으로 RGB 3색을 지원합니다.
16진수 색 코드 — 해시 기호(
#
)로 시작하고 이어서 3개 또는 6개의 16진수 숫자가 오는 string형이나 문자형 벡터를 지정하여 사용자 지정 색을 만듭니다. 16진수 숫자의 범위는0
~F
입니다. 이 값은 대/소문자를 구분하지 않습니다. 따라서, 색 코드"#FF8800"
,"#ff8800"
,"#F80"
,"#f80"
은 모두 같은 주황색 음영을 지정합니다.색을 제어하는 일부 함수 인수는 16진수 색 코드를 허용하지 않지만, 객체 속성에 해당하는 이름-값 인수를 사용하여 16진수 색 코드를 지정할 수 있습니다. 예를 들어
scatter(x,y,sz,"MarkerFaceColor","#FF8800")
은 산점도 플롯의 마커 색을 주황색으로 설정합니다.
다음 표에는 유효한 색 이름 및 짧은 이름과 함께 이에 대응하는 RGB 3색과 16진수 색 코드가 모두 나열되어 있습니다.
색 이름 | 짧은 이름 | RGB 3색 | 16진수 색 코드 | 모양 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
다음은 MATLAB이 여러 유형의 플롯에서 사용하는 디폴트 색의 RGB 3색과 16진수 색 코드입니다. 이러한 색에는 색과 연결된 이름이 없습니다.
RGB 3색 | 16진수 색 코드 | 모양 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
막대 차트의 색 지정하기
bar
함수를 호출하여 빨간색 막대 차트를 만들고 선택적 color
인수를 "red"
로 지정합니다. 나중에 차트의 다른 특성을 사용자 지정할 수 있도록 bar 객체를 b
로 반환합니다.
b = bar(1:10,"red");
이제 FaceColor
와 EdgeColor
속성을 16진수 색 코드 "#80B3FF"
로 설정하여 막대 채우기 색과 윤곽선 색을 연한 파란색으로 변경합니다.
R2019a 이전 릴리스에서는 16진수 색 코드 대신 RGB 3색으로 지정하십시오. 예를 들면 b.FaceColor = [0.5 0.7 1]
과 같습니다.
b.FaceColor = "#80B3FF"; b.EdgeColor = "#80B3FF";
산점도 플롯에 마커 색 지정하기
난수로 구성된 산점도 플롯을 생성합니다. 마커 크기를 75
포인트로 지정하고 이름-값 인수를 사용하여 마커 윤곽선과 채우기 색을 지정합니다. MarkerEdgeColor
속성은 윤곽선 색을 제어하고 MarkerFaceColor
는 채우기 색을 제어합니다.
x = rand(1,100); y = rand(1,100); scatter(x,y,75,"MarkerEdgeColor","b", ... "MarkerFaceColor",[0 0.7 0.7])
일련의 플롯에 색 지정하기
일련의 플롯을 생성하는 방법에는 다음 두 가지가 있습니다.
플로팅 함수를 여러 번 호출하고
hold
함수를 사용하여 좌표축의 내용을 유지합니다.여러 데이터 계열이 포함된 행렬을 플로팅 함수에 전달합니다.
plot
함수는 항상 행렬 입력값을 받으며, 그 외 많은 다른 플로팅 함수도 행렬 입력값을 지원합니다.
어느 쪽 방법으로든 색을 지정하려면 출력 인수와 함께 원하는 플로팅 함수를 호출하십시오. 그러면 각 plot 객체에 액세스할 수 있습니다. 그런 다음 변경할 plot 객체의 속성을 설정합니다.
예를 들어, 100개 점으로 채워진 마커를 포함하는 산점도 플롯을 생성해 보겠습니다. 출력 인수 s1
을 사용하여 scatter
함수를 호출합니다. hold
함수를 호출하여 좌표축의 내용을 유지한 다음, 출력 인수 s2
와 s3
을 사용하여 scatter
함수를 두 번 더 호출합니다. 변수 s1
, s2
, s3
은 Scatter
객체입니다.
figure x = 1:5; s1 = scatter(x,[6 3 9 10 7],100,"filled"); hold on s2 = scatter(x,[16 13 19 20 17],100,"filled"); s3 = scatter(x,[26 23 29 33 27],100,"filled"); hold off
두 번째 Scatter
객체의 색을 자주색 음영으로 변경합니다.
s2.MarkerFaceColor = [0.7 0 1];
scatter
함수는 행렬 입력값도 지원하므로(R2021a부터), 행렬을 전달하고 객체로 구성된 벡터를 반환하여 동일한 플롯을 생성할 수 있습니다.
figure
x = 1:5;
y = [6 3 9 10 7; 16 13 19 20 17; 26 23 29 33 27];
s = scatter(x,y,100,"filled");
이 경우에 두 번째 데이터 계열의 색을 변경하려면 s
의 요소를 참조하여 두 번째 Scatter
객체에 액세스합니다.
s(2).MarkerFaceColor = [0.7 0 1];
참고 항목
함수
scatter
|bar
|validatecolor