Main Content

플롯 색 지정하기

MATLAB®은 디폴트 색 집합을 사용하여 플롯을 만듭니다. 디폴트 색은 사용자가 만드는 다양한 플롯 전반에 명확하고 일관된 모양을 제공합니다. 필요한 경우 색을 사용자 지정할 수 있습니다. 대다수의 플로팅 함수에는 c 또는 colorspec과 같이 색을 사용자 지정하기 위한 입력 인수가 있습니다. 이러한 함수에서 반환되는 객체에는 일반적으로 색을 제어하는 속성이 있습니다. 인수와 속성의 이름은 달라질 수 있지만, 일반적으로 인수와 속성이 허용하는 값은 일반 패턴을 따릅니다. 패턴에 익숙해지면 이를 사용하여 다양한 플롯을 수정할 수 있습니다.

다음 예제에서는 barscatter 함수를 사용하여 색을 사용자 지정하는 전반적인 접근 방식을 보여줍니다. 특정 플로팅 함수에 관한 유효한 색 값의 전체 목록은 해당 함수의 문서를 참조하십시오.

색 값의 유형

색 값에는 다음과 같은 세 가지 유형이 있습니다.

  • 색 이름 또는 짧은 이름 — 색 이름을 지정합니다(예: "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"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

다음은 MATLAB이 여러 유형의 플롯에서 사용하는 디폴트 색의 RGB 3색과 16진수 색 코드입니다. 이러한 색에는 색과 연결된 이름이 없습니다.

RGB 3색16진수 색 코드모양
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

막대 차트의 색 지정하기

bar 함수를 호출하여 빨간색 막대 차트를 만들고 선택적 color 인수를 "red"로 지정합니다. 나중에 차트의 다른 특성을 사용자 지정할 수 있도록 bar 객체를 b로 반환합니다.

b = bar(1:10,"red");

Figure contains an axes object. The axes object contains an object of type bar.

이제 FaceColorEdgeColor 속성을 16진수 색 코드 "#80B3FF"로 설정하여 막대 채우기 색과 윤곽선 색을 연한 파란색으로 변경합니다.

R2019a 이전 릴리스에서는 16진수 색 코드 대신 RGB 3색으로 지정하십시오. 예를 들면 b.FaceColor = [0.5 0.7 1]과 같습니다.

b.FaceColor = "#80B3FF";
b.EdgeColor = "#80B3FF";

Figure contains an axes object. The axes object contains an object of type bar.

산점도 플롯에 마커 색 지정하기

난수로 구성된 산점도 플롯을 생성합니다. 마커 크기를 75포인트로 지정하고 이름-값 인수를 사용하여 마커 윤곽선과 채우기 색을 지정합니다. MarkerEdgeColor 속성은 윤곽선 색을 제어하고 MarkerFaceColor는 채우기 색을 제어합니다.

x = rand(1,100);
y = rand(1,100);
scatter(x,y,75,"MarkerEdgeColor","b", ...
    "MarkerFaceColor",[0 0.7 0.7])

Figure contains an axes object. The axes object contains an object of type scatter.

일련의 플롯에 색 지정하기

일련의 플롯을 생성하는 방법에는 다음 두 가지가 있습니다.

  • 플로팅 함수를 여러 번 호출하고 hold 함수를 사용하여 좌표축의 내용을 유지합니다.

  • 여러 데이터 계열이 포함된 행렬을 플로팅 함수에 전달합니다. plot 함수는 항상 행렬 입력값을 받으며, 그 외 많은 다른 플로팅 함수도 행렬 입력값을 지원합니다.

어느 쪽 방법으로든 색을 지정하려면 출력 인수와 함께 원하는 플로팅 함수를 호출하십시오. 그러면 각 plot 객체에 액세스할 수 있습니다. 그런 다음 변경할 plot 객체의 속성을 설정합니다.

예를 들어, 100개 점으로 채워진 마커를 포함하는 산점도 플롯을 생성해 보겠습니다. 출력 인수 s1을 사용하여 scatter 함수를 호출합니다. hold 함수를 호출하여 좌표축의 내용을 유지한 다음, 출력 인수 s2s3을 사용하여 scatter 함수를 두 번 더 호출합니다. 변수 s1, s2, s3Scatter 객체입니다.

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

Figure contains an axes object. The axes object contains 3 objects of type scatter.

두 번째 Scatter 객체의 색을 자주색 음영으로 변경합니다.

s2.MarkerFaceColor = [0.7 0 1];

Figure contains an axes object. The axes object contains 3 objects of type scatter.

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");

Figure contains an axes object. The axes object contains 3 objects of type scatter.

이 경우에 두 번째 데이터 계열의 색을 변경하려면 s의 요소를 참조하여 두 번째 Scatter 객체에 액세스합니다.

s(2).MarkerFaceColor = [0.7 0 1];

Figure contains an axes object. The axes object contains 3 objects of type scatter.

참고 항목

함수

속성

관련 항목