Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

barh

가로 막대 그래프

설명

예제

barh(y)y의 각 요소마다 막대가 하나씩 있는 가로 막대 그래프를 만듭니다. y가 mxn 행렬인 경우 barh는 n개의 막대로 구성된 그룹 m개를 만듭니다.

예제

barh(x,y)x로 지정된 위치에 세로 축을 따라 막대를 그립니다.

예제

barh(___,width)는 사용 가능한 공간에서 각 막대가 차지하는 비율을 지정합니다. 예를 들어, barh(y,1)은 각 그룹 내에서 막대가 서로 접하게 됩니다. 위에 열거된 구문에서 width를 마지막 인수로 지정합니다.

예제

barh(___,style)은 막대 그룹의 스타일을 지정합니다. 예를 들어, barh(y,'stacked')는 각 그룹 내 막대를 서로 다른 색으로 채색된 막대로 쌓습니다.

예제

barh(___,color)는 모든 막대에 대해 단일 색을 지정합니다. 예를 들어, barh(y,'red')는 빨간색 막대를 표시합니다.

예제

barh(___,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 막대 그래프의 속성을 지정합니다. 디폴트 'grouped' 또는 'stacked' 스타일을 사용하는 막대 그래프에 대해서만 막대 속성을 설정할 수 있습니다. 다른 모든 입력 인수 다음에 이름-값 쌍 인수를 지정합니다. 속성 목록은 Bar 속성를 참조하십시오.

예제

barh(ax,___)는 대상 좌표축에 막대 그래프를 표시합니다. 위에 열거된 구문에서 좌표축을 첫 번째 인수로 지정합니다.

예제

b = barh(___)는 하나 이상의 Bar 객체를 반환합니다. y가 벡터이면 barh는 하나의 Bar 객체를 반환합니다. y가 행렬이면 barh는 각 계열에 대해 Bar 객체를 반환합니다. b를 사용하면 막대 그래프를 표시한 후에 막대의 속성을 설정할 수 있습니다.

예제

모두 축소

4개의 값으로 구성된 벡터를 만듭니다. 값 하나에 가로 막대가 하나씩 있는 막대 그래프로 값을 표시합니다.

y = [10 20 30 41];
barh(y)

x를 세 개의 연도 값으로 구성된 행렬로 정의합니다. y를 4개 도시의 적설량 데이터를 포함하는 행렬로 정의합니다. 각 연도에 대해 4개의 막대 계열을 그룹으로 표시합니다. 그런 다음 축 레이블과 범례를 추가합니다.

x = [1980 1990 2000];
y = [40 50 63 52; 42 55 50 48; 30 20 44 40];
barh(x,y)
xlabel('Snowfall')
ylabel('Year')
legend({'Springfield','Fairview','Bristol','Jamesville'})

행렬 y를 만듭니다. 그런 다음 기준선 값을 25로 하는 막대 그래프로 y의 값을 표시합니다. 25보다 작은 값은 기준선의 왼쪽에 표시됩니다.

y = [8 15 33; 30 35 40; 50 55 62];
barh(y,'BaseValue',25)

x를 세 개의 연도 값으로 구성된 벡터로 정의합니다. y를 음수 값과 양수 값이 조합되어 포함된 행렬로 정의합니다. 값을 누적 가로 막대 그래프로 표시합니다.

x = [1980 1990 2000];
y = [15 20 -5; 10 -17 21; -10 5 15];
barh(x,y,'stacked')

y를 4개 값으로 구성된 벡터로 정의하고, 값을 가로 막대 그래프로 표시합니다. 그런 다음 yticklabels 함수를 호출하여 세로 축의 눈금 레이블을 변경합니다.

y = [10 20 30 41];
barh(y)
yticklabels({'April','May','June','July'})

막대의 범주를 표시하는 방법 중 하나는 X를 categorical형 배열로 지정하는 것입니다. barh 함수는 정렬된 범주 목록을 사용하기 때문에, 막대가 예상과 다른 순서로 표시될 수도 있습니다. 순서를 그대로 유지하려면 reordercats 함수를 호출하십시오.

X를 categorical형 배열로 정의한 후 reordercats 함수를 호출하여 막대의 순서를 지정합니다. 그런 다음 Y를 막대 길이로 구성된 벡터로 정의하고 막대 그래프를 표시합니다.

X = categorical({'Small','Medium','Large','Extra Large'});
X = reordercats(X,{'Small','Medium','Large','Extra Large'});
Y = [10 21 33 52];
barh(X,Y)

vals를 두 계열의 데이터를 포함하는 행렬로 정의합니다. 데이터를 가로 막대 그래프로 표시하고 출력 인수를 지정합니다. 계열이 두 개이기 때문에 barh는 두 개의 Bar 객체로 구성된 벡터를 반환합니다.

x = [1 2 3];
vals = [2 3 6; 11 23 26];
b = barh(x,vals);

이들 값을 첫 번째 막대 계열의 끝 지점에 레이블로 표시합니다. 이렇게 하려면 첫 번째 Bar 객체의 XEndPoints 속성과 YEndPoints 속성을 가져와서 막대 끝 지점의 좌표를 구하십시오. 가로 막대 그래프는 회전된 좌표축을 가지므로 XEndPointsYEndPoints의 값을 text 함수에 전달하기 전에 서로 바꾸어야 합니다. 텍스트가 막대 끝에 닿지 않도록 YEndpoints에 채우기 값으로 0.3을 추가합니다. 그런 다음 text 함수를 호출하여 레이블을 표시합니다.

xtips1 = b(1).YEndPoints + 0.3;
ytips1 = b(1).XEndPoints;
labels1 = string(b(1).YData);
text(xtips1,ytips1,labels1,'VerticalAlignment','middle')

다음으로, 동일한 단계를 진행하여 두 번째 막대 계열의 끝 지점에 레이블을 표시합니다.

xtips2 = b(2).YEndPoints + 0.3;
ytips2 = b(2).XEndPoints;
labels2 = string(b(2).YData);
text(xtips2,ytips2,labels2,'VerticalAlignment','middle')

데이터를 만들고 두께 0.4의 빨간색 막대로 구성된 가로 막대 그래프로 표시합니다.

y = [10 22 30 42];
width = 0.4;
barh(y,width,'red');

각 열이 한 계열의 데이터를 나타내는 y를 만듭니다. 그런 다음 출력 인수를 지정하여 barh 함수를 호출해서 데이터를 막대 그래프로 표시합니다. 이 경우 barh는 세 개의 Bar 객체로 구성된 벡터를 반환합니다. 각 객체는 서로 다른 계열에 대응됩니다.

y = [10 15 20; 30 35 40; 50 55 62];
b = barh(y);

두 번째 막대 계열을 두꺼운 빨간색 테두리가 둘러진 녹색으로 수정합니다.

b(2).FaceColor = [.2 .6 .5];
b(2).EdgeColor = [.63 .08 .18];
b(2).LineWidth = 2;

데이터를 만들고, 디폴트 'grouped' 스타일과 'stacked' 스타일을 사용하는 서로 다른 두 개의 막대 그래프로 표시합니다.

x = [1980 1990 2000];
y = [8 15 25; 30 35 40; 50 55 62];

% Grouped
tiledlayout(2,1);
ax1 = nexttile;
barh(ax1,x,y)
title('Grouped Style')

% Stacked
ax2 = nexttile;
barh(ax2,x,y,'stacked')
title('Stacked Style')

입력 인수

모두 축소

세로 축 좌표로, 스칼라, 벡터 또는 행렬로 지정됩니다. x의 값들은 순서대로 되어 있을 필요는 없지만, x의 크기는 y의 크기 및 데이터를 표시하려는 방법에 따라 달라집니다. 다음 표에서는 가장 일반적인 경우를 설명합니다.

표시 방법XY를 지정하는 방법
하나의 막대 계열 표시.

xy를 동일한 길이의 벡터로 지정합니다. x의 값은 고유해야 하지만 y의 값은 고유하지 않아도 됩니다.

x = [1980 1990 2000];
y = [10 20 30];
barh(x,y)

여러 개의 막대 계열을 그룹으로 표시.

다음과 같은 조합 중 하나를 지정합니다.

  • xy를 동일한 크기의 행렬로 지정합니다. y의 열은 각각 하나의 막대 계열에 대응됩니다. 기본적으로 각 계열은 서로 다른 색입니다. 그룹을 일관되게 배치하려면 x의 열을 동일한 벡터로 지정하십시오. 열이 반복되더라도 열 내에 있는 값들은 고유해야 합니다.

  • x를 고유한 값으로 구성된 벡터로 지정하고 y를 행렬로 지정합니다. x의 길이는 적어도 y의 한 차원과 길이가 같아야 합니다. y의 나머지 차원은 각 막대 계열별 값을 포함합니다.

x = [1980 1980 1980
     1990 1990 1990];
y = [2 6 9
    11 22 32];
barh(x,y)
또는
x = [1980 1990];
y = [2 6 9
    11 22 32];
barh(x,y)

하나의 x 값을 중심으로 하는 하나의 막대 그룹 표시.

x를 스칼라로 지정하고 y를 벡터로 지정합니다.

x = 1990;
y = [10 20 30];
barh(x,y)

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

막대 길이로, 스칼라, 벡터 또는 행렬로 지정됩니다. y의 크기는 x의 크기 및 데이터를 표시하려는 방법에 따라 달라집니다. 다음 표에서는 가장 일반적인 경우를 설명합니다.

표시 방법XY를 지정하는 방법
하나의 막대 계열 표시.

xy를 동일한 길이의 벡터로 지정합니다. x의 값은 고유해야 하지만 y의 값은 고유하지 않아도 됩니다.

x = [1980 1990 2000];
y = [10 20 30];
barh(x,y)

여러 개의 막대 계열을 그룹으로 표시.

다음과 같은 조합 중 하나를 지정합니다.

  • xy를 동일한 크기의 행렬로 지정합니다. y의 열은 각각 하나의 막대 계열에 대응됩니다. 기본적으로 각 계열은 서로 다른 색입니다. 그룹을 일관되게 배치하려면 x의 열을 동일한 벡터로 지정하십시오. 열이 반복되더라도 열 내에 있는 값들은 고유해야 합니다.

  • x를 고유한 값으로 구성된 벡터로 지정하고 y를 행렬로 지정합니다. x의 길이는 적어도 y의 한 차원과 길이가 같아야 합니다. y의 나머지 차원은 각 막대 계열별 값을 포함합니다.

x = [1980 1980 1980
     1990 1990 1990];
y = [2 6 9
    11 22 32];
barh(x,y)
또는
x = [1980 1990];
y = [2 6 9
    11 22 32];
barh(x,y)

하나의 x 값을 중심으로 하는 하나의 막대 그룹 표시.

x를 스칼라로 지정하고 y를 벡터로 지정합니다.

x = 1990;
y = [10 20 30];
barh(x,y)

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | duration

막대 두께로, 각 막대의 사용 가능한 총 공간에 대한 비율로 지정됩니다. 디폴트 값인 0.8은 각 막대가 이전 막대에서 다음 막대까지의 공간의 80%를 사용하며 막대 양쪽에 10%의 빈 공간이 있음을 의미합니다.

두께가 1이면 그룹 내에서 막대가 서로 접하게 됩니다.

예: barh([1 2 3],0.5)는 사용 가능한 공간의 50%를 사용하는 막대를 만듭니다.

그룹 스타일로, 다음 값 중 하나로 지정됩니다.

스타일결과

'grouped'

각 그룹을 x 값을 중심으로 인접해 있는 막대로 표시합니다.

'stacked'

각 그룹을 서로 다른 색으로 채색된 하나의 막대로 표시합니다. 막대 길이는 그룹 내 요소들의 합과 같습니다.

y가 벡터인 경우 결과는 'grouped'와 같습니다.

'histc'

그룹 내의 막대가 서로 접해 있는 히스토그램 형식으로 막대를 표시합니다. 각 그룹의 막대 경계는 대응하는 x 값을 시작점으로 하여 정렬됩니다.

참고

histogram 함수를 호출하고 Orientation 이름-값 쌍의 인수를 지정하면 가로 히스토그램을 더 잘 표시할 수 있습니다.

'hist'

막대를 히스토그램 형식으로 표시합니다. 각 그룹은 대응하는 x 값을 중심점으로 하여 정렬됩니다.

참고

histogram 함수를 호출하고 Orientation 이름-값 쌍의 인수를 지정하면 가로 히스토그램을 더 잘 표시할 수 있습니다.

막대 색으로, 다음 표에 나와 있는 옵션 중 하나로 지정됩니다.

옵션설명
'blue' 또는 'b'파란색
'red' 또는 'r'빨간색
'green' 또는 'g'녹색
'cyan' 또는 'c'녹청색
'magenta' 또는 'm'자홍색
'yellow' 또는 'y'노란색
'black' 또는 'k'검은색
'white' 또는 'w'흰색

예: barh([10 20 30],'r')은 일련의 빨간색 막대를 만듭니다.

대상 좌표축으로, Axes 객체로 지정됩니다. 좌표축을 지정하지 않을 경우 막대 그래프는 현재 좌표축에 표시됩니다.

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: barh([10 20 30],'EdgeColor','g')는 막대 주위에 녹색 윤곽선을 지정합니다.

참고

  • 여기에 나와 있는 속성은 일부에 불과합니다. 전체 목록을 보려면 Bar 속성를 참조하십시오.

  • 이러한 속성은 디폴트 'grouped' 또는 'stacked' 스타일을 사용하는 막대 그래프에 대해서만 설정할 수 있습니다.

윤곽선 색으로, 'flat', RGB 3색, 16진수 색 코드, 색 이름 또는 짧은 이름으로 지정됩니다. 막대 수가 150개 이하이면 디폴트 값은 [0 0 0]으로, 검은색에 해당합니다. 150개 이상의 인접한 막대가 있으면 디폴트 값은 'none'입니다.

R2017b부터, 'flat' 옵션은 CData 값을 사용하여 가장자리에 색을 지정합니다. 이전 릴리스에서 'flat' 옵션은 컬러맵의 색을 사용하여 가장자리에 색을 지정했습니다.

사용자 지정 색의 경우에는 RGB 3색 또는 16진수 색 코드를 지정하십시오.

  • RGB 3색은 요소를 3개 가진 행 벡터로, 각 요소는 색을 구성하는 빨간색, 녹색, 파란색의 농도를 지정합니다. 농도의 범위는 [0,1]이어야 합니다(예: [0.4 0.6 0.7]).

  • 16진수 색 코드는 문자형 벡터 또는 string형 스칼라로, 해시 기호(#)로 시작하고 그 뒤에 3자리 또는 6자리의 16진수 숫자(0에서 F 사이일 수 있음)가 옵니다. 이 값은 대/소문자를 구분하지 않습니다. 따라서 색 코드 '#FF8800', '#ff8800', '#F80''#f80'은 모두 동일합니다.

몇몇의 흔한 색은 이름으로 지정할 수도 있습니다. 다음 표에는 명명된 색 옵션과 그에 해당하는 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'

'none'해당 없음해당 없음해당 없음색 없음

다음은 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'

예: b = bar(1:10,'EdgeColor','red')

예: b.EdgeColor = [0 0.5 0.5];

예: b.EdgeColor = 'flat';

예: b.EdgeColor = '#D2F9A7';

채우기 색으로, 'flat', RGB 3색, 16진수 색 코드, 색 이름 또는 짧은 이름으로 지정됩니다. 'flat' 옵션은 Bar 객체의 CData 속성값을 사용하여 면을 채색합니다.

사용자 지정 색의 경우에는 RGB 3색 또는 16진수 색 코드를 지정하십시오.

  • RGB 3색은 요소를 3개 가진 행 벡터로, 각 요소는 색을 구성하는 빨간색, 녹색, 파란색의 농도를 지정합니다. 농도의 범위는 [0,1]이어야 합니다(예: [0.4 0.6 0.7]).

  • 16진수 색 코드는 문자형 벡터 또는 string형 스칼라로, 해시 기호(#)로 시작하고 그 뒤에 3자리 또는 6자리의 16진수 숫자(0에서 F 사이일 수 있음)가 옵니다. 이 값은 대/소문자를 구분하지 않습니다. 따라서 색 코드 '#FF8800', '#ff8800', '#F80''#f80'은 모두 동일합니다.

몇몇의 흔한 색은 이름으로 지정할 수도 있습니다. 다음 표에는 명명된 색 옵션과 그에 해당하는 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'

'none'해당 없음해당 없음해당 없음색 없음

다음은 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'

R2017b부터, 디폴트 값은 좌표축의 ColorOrder 속성에서 가져오는 RGB 3색입니다. 이전 릴리스에서 디폴트 값은 'flat'이었고 컬러맵에 기반한 색이었습니다.

예: b = bar(1:10,'FaceColor','red')

예: b.FaceColor = [0 0.5 0.5];

예: b.FaceColor = 'flat';

예: b.FaceColor = '#D2F9A7';

막대 윤곽선의 너비로, 양의 값으로 지정됩니다(단위: 포인트). 1포인트는 1/72인치와 같습니다.

예: 1.5

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

기준 값으로, 스칼라 숫자형 값으로 지정됩니다.

지정하는 기준 값은 막대 차트 방향에 따라 x축 또는 y축에 적용됩니다. 막대 차트의 방향을 세로에서 가로로 변경하면 또는 그 반대의 경우 기준 값이 변경될 수 있습니다. Horizontal 속성을 설정한 후 BaseValue 속성을 설정하십시오.

출력 인수

모두 축소

Bar 객체. b의 요소를 사용하면 특정 Bar 객체가 생성된 후에 해당 객체의 속성에 액세스하여 수정할 수 있습니다. Bar 객체의 수는 y의 크기에 따라 달라집니다. y가 벡터이면 b는 하나의 Bar 객체입니다. y가 행렬이면 by의 각 계열에 대한 Bar 객체를 포함하는 벡터입니다.

세부 정보

모두 축소

막대 계열

하나의 계열은 X 데이터 세트의 각 데이터에 해당하는 위치마다 배치된 막대들로 이루어집니다. 기본적으로 각 막대 계열은 서로 다른 색으로 표시됩니다.

막대 그룹

하나의 그룹은 X의 특정 위치에 함께 배치된 막대들로 이루어집니다.

확장 기능

R2006a 이전에 개발됨