Main Content

swarmchart

군집 산점도 차트

R2020b 이후

  • Swarm chart

설명

벡터 및 행렬 데이터

예제

swarmchart(x,y)x 차원에 점 오프셋이 있는(즉, 점이 겹치지 않게 간격이 설정된) 산점도 플롯인 군집 차트를 표시합니다. 점들은 고유한 형태를 형성하며, 각 형태의 윤곽선은 바이올린 플롯과 비슷합니다. 군집 차트를 사용하면 y 데이터의 분포를 사용하여 이산 x 데이터를 시각화할 수 있습니다. x의 각 위치에서 점들은 y의 커널 밀도 추정값을 기반으로 간격이 설정됩니다.

  • 하나의 점 집합을 플로팅하려면 xy를 동일한 길이의 벡터로 지정하십시오.

  • 동일한 좌표축에 여러 개의 점 집합을 플로팅하려면 xy 중 적어도 하나를 행렬로 지정하십시오.

예제

swarmchart(x,y,sz)는 마커 크기를 지정합니다. 마커를 모두 같은 크기로 플로팅하려면 sz를 스칼라로 지정하십시오. 마커를 서로 다른 크기로 플로팅하려면 sz를 벡터 또는 행렬로 지정하십시오.

예제

swarmchart(x,y,sz,c)는 마커 색을 지정합니다. 모든 마커에 대해 하나의 색을 지정할 수도 있고 색을 달리할 수도 있습니다. 예를 들어, c'red'로 지정하여 모든 원을 빨간색으로 플로팅할 수 있습니다.

예제

swarmchart(___,mkr)은 디폴트 마커인 원과는 다른 마커를 지정합니다. 위에 열거된 구문에서 mkr를 모든 인수 뒤에 지정하십시오.

예제

swarmchart(___,'filled')는 마커를 채웁니다. 위에 열거된 구문에서 'filled' 옵션을 모든 인수 뒤에 지정하십시오.

테이블 데이터

예제

swarmchart(tbl,xvar,yvar)은 테이블 tbl에서 변수 xvaryvar을 플로팅합니다. 하나의 데이터 세트를 플로팅하려면 xvar에 대한 변수 1개와 yvar에 대한 변수 1개를 지정하십시오. 여러 개의 데이터 세트를 플로팅하려면 xvar, yvar 또는 둘 모두에 대해 변수를 여러 개 지정하십시오. 인수 둘 다에 여러 개의 변수를 지정하는 경우에는 동일한 개수의 변수를 지정해야 합니다.

예제

swarmchart(tbl,xvar,yvar,'filled')는 지정된 변수를 플로팅하고 마커를 채웁니다.

추가 옵션

예제

swarmchart(ax,___)는 대상 좌표축에 군집 차트를 표시합니다. 위에 열거된 구문에서 좌표축을 모든 인수 앞에 지정하십시오.

예제

swarmchart(___,Name,Value)는 하나 이상의 이름-값 인수를 사용하여 군집 차트의 추가 속성을 지정합니다. 다른 모든 입력 인수 다음에도 속성을 지정할 수 있습니다. 예를 들면 다음과 같습니다.

  • swarmchart(x,y,'LineWidth',2)는 2포인트 마커 윤곽선을 사용하여 군집 차트를 만듭니다.

  • swarmchart(tbl,'MyX','MyY','ColorVariable','MyColors')는 테이블의 데이터로 군집 차트를 만들고 테이블의 데이터를 사용하여 마커 색을 사용자 지정합니다.

  • swarmchart(x,y,'YJitter','density')는 가로 군집 차트를 만듭니다. (R2023b 이후)

속성 목록은 Scatter 속성 항목을 참조하십시오.

예제

s = swarmchart(___)Scatter 객체를 반환하거나 Scatter 객체로 구성된 배열을 반환합니다. 차트를 생성한 후에 속성을 수정하려면 s를 사용하십시오. 속성 목록은 Scatter 속성 항목을 참조하십시오.

예제

모두 축소

x 좌표로 구성된 벡터를 만들고 randn 함수를 사용하여 y에 대한 정규분포된 난수 값을 생성합니다. 그런 다음 xy의 군집 차트를 만듭니다.

x = [ones(1,500) 2*ones(1,500) 3*ones(1,500)];
y1 = 2 * randn(1,500);
y2 = 3 * randn(1,500) + 5;
y3 = 5 * randn(1,500) + 5;
y = [y1 y2 y3];
swarmchart(x,y)

x, y 좌표로 구성된 세 개의 데이터 세트를 만듭니다. randn 함수를 사용하여 y에 대한 난수 값을 생성합니다.

x1 = ones(1,500);
x2 = 2 * ones(1,500);
x3 = 3 * ones(1,500);
y1 = 2 * randn(1,500);
y2 = [randn(1,250) randn(1,250) + 4];
y3 = 5 * randn(1,500) + 5;

첫 번째 데이터 세트의 군집 차트를 만들고 마커 크기를 5로 균일하게 지정합니다. 그런 다음 hold on을 호출하여 두 번째와 세 번째 데이터 세트를 첫 번째 데이터 세트와 함께 플로팅합니다. hold off를 호출하여 좌표축의 유지 상태를 해제합니다.

swarmchart(x1,y1,5)
hold on
swarmchart(x2,y2,5)
swarmchart(x3,y3,5)
hold off

BicycleCounts.csv 데이터 세트를 tbl이라는 타임테이블로 읽어옵니다. 이 데이터 세트에는 일정 기간 동안의 자전거 통행량 데이터가 포함되어 있습니다. tbl의 처음 5개 행을 표시합니다.

tbl = readtable("BicycleCounts.csv");
tbl(1:5,:)
ans=5×5 table
         Timestamp              Day         Total    Westbound    Eastbound
    ___________________    _____________    _____    _________    _________

    2015-06-24 00:00:00    {'Wednesday'}     13          9            4    
    2015-06-24 01:00:00    {'Wednesday'}      3          3            0    
    2015-06-24 02:00:00    {'Wednesday'}      1          1            0    
    2015-06-24 03:00:00    {'Wednesday'}      1          1            0    
    2015-06-24 04:00:00    {'Wednesday'}      1          1            0    

각 관측값의 요일 이름으로 구성된 벡터 x를 만들고, 관측된 자전거 통행량으로 구성된 또 다른 벡터 y를 만듭니다. 그런 다음 xy의 군집 차트를 만들고 점 마커 ('.')를 지정합니다. 이 차트는 요일별 자전거 교통량 분포를 보여줍니다.

daynames = ["Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"];
x = categorical(tbl.Day,daynames);
y = tbl.Total;
swarmchart(x,y,'.');

BicycleCounts.csv 데이터 세트를 tbl이라는 타임테이블로 읽어옵니다. 각 관측값의 요일 이름으로 구성된 벡터 x를 만들고, 관측된 자전거 통행량으로 구성된 또 다른 벡터 y를 만든 후 시간으로 구성된 세 번째 벡터 c를 만듭니다.

그런 다음 xy의 군집 차트를 만들고 마커 크기를 20으로 지정합니다. 마커의 색을 벡터 c로 지정합니다. 벡터의 값은 Figure의 컬러맵의 요소를 참조합니다. 따라서 각 데이터 점의 시간에 따라 색이 달라집니다. 'filled' 옵션을 사용하여 마커를 속이 빈 원으로 표시하는 대신 내부를 색으로 채웁니다.

tbl = readtable("BicycleCounts.csv");
daynames = ["Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"];
x = categorical(tbl.Day,daynames);
y = tbl.Total;
c = hour(tbl.Timestamp);
swarmchart(x,y,20,c,'filled');

BicycleCounts.csv 데이터 세트를 tbl이라는 타임테이블로 읽어옵니다. 각 관측값의 요일 이름으로 구성된 벡터 x를 만들고, 관측된 자전거 통행량으로 구성된 또 다른 벡터 y를 만든 후 시간으로 구성된 세 번째 벡터 c를 만듭니다. 그런 다음 xy의 군집 차트를 만들고, 마커 크기를 5로 지정한 후 마커의 색을 벡터 c로 지정합니다. 차트를 만든 후 수정할 수 있도록 반환 인수 s를 사용하여 swarmchart 함수를 호출합니다.

tbl = readtable("BicycleCounts.csv");
daynames = ["Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"];
x = categorical(tbl.Day,daynames);
y = tbl.Total;
c = hour(tbl.Timestamp);
s = swarmchart(x,y,5,c);

각각의 x 위치에서 군집의 형태를 변경하여 점이 균일하고 무작위로 분포되고 그 간격이 0.5 데이터 단위 이하로 제한되도록 합니다.

s.XJitter = 'rand';
s.XJitterWidth = 0.5;

R2023b 이후

swarmchart 함수를 호출할 때 YJitter 속성을 설정하여 가로 군집 차트를 만들 수 있습니다.

예를 들어, 500개의 숫자로 구성된 3개의 정규분포와 도시 이름으로 구성된 categorical형 벡터를 만들어 보겠습니다. 그런 다음 swarmchart 함수를 호출하고 YJitter 이름-값 인수를 지정하여 데이터의 가로 군집 차트를 만듭니다.

x = randn(500,3) + [1 4 6];
towns = categorical(["Stowe" "Wayland" "Natick"]);
y = repmat(towns,500,1);
swarmchart(x,y,YJitter="density")

x, y 좌표 쌍을 만듭니다. randn 함수를 사용하여 y에 대한 난수 값을 생성합니다. 그런 다음 채워진 마커의 면과 가장자리 모두 투명도가 50%인 군집 차트를 만듭니다.

x1 = ones(1,500);
x2 = 2 * ones(1,500);
x = [x1 x2];
y1 = 2 * randn(1,500);
y2 = [randn(1,250) randn(1,250) + 4];
y = [y1 y2];
swarmchart(x,y,'filled','MarkerFaceAlpha',0.5,'MarkerEdgeAlpha',0.5)

테이블을 swarmchart 함수에 전달하고 플로팅할 변수를 지정하면 테이블의 데이터를 편리하게 플로팅할 수 있습니다. 예를 들어, 난수로 구성된 변수를 3개 갖는 테이블을 생성하고 XY1 변수를 플로팅합니다. 기본적으로 좌표축 레이블은 변수 이름과 일치합니다.

tbl = table(randi(2,100,1),randn(100,1),randn(100,1)+10, ...
   'VariableNames',{'X','Y1','Y2'});

swarmchart(tbl,'X','Y1')

여러 개의 변수를 동시에 플로팅할 수도 있습니다. 예를 들어, yvar 인수를 셀형 배열 {'Y1','Y2'}로 지정하여 Y1 변수와 Y2 변수를 y축에 플로팅합니다. 그런 다음 범례를 추가합니다. 범례 레이블은 변수 이름과 일치합니다.

swarmchart(tbl,'X',{'Y1','Y2'})
legend

ColorVariableSizeData 속성을 설정하면 테이블의 데이터를 플로팅하고 색과 마커 크기를 사용자 지정할 수 있습니다. swarmchart 함수를 호출할 때 이러한 속성을 이름-값 인수로 설정하거나 나중에 Scatter 객체에서 속성을 설정할 수 있습니다.

예를 들어, 난수로 구성된 변수를 3개 갖는 테이블을 생성하고 X 변수와 Y 변수를 채워진 마커를 사용하여 플로팅합니다. ColorVariable 이름-값 인수를 지정하여 다양한 마커 색을 지정합니다. 나중에 다른 속성을 설정할 수 있도록 Scatter 객체를 s로 반환합니다.

tbl = table(randi(2,100,1),randn(100,1),randn(100,1), ...
   'VariableNames',{'X','Y','Colors'});

s = swarmchart(tbl,'X','Y','filled','ColorVariable','Colors');

SizeData 속성을 설정하여 마커 크기를 100포인트로 변경합니다.

s.SizeData = 100;

BicycleCounts.csv 데이터 세트를 tbl이라는 타임테이블로 읽어옵니다. 이 데이터 세트에는 일정 기간 동안의 자전거 통행량 데이터가 포함되어 있습니다. tbl의 처음 5개 행을 표시합니다.

tbl = readtable("BicycleCounts.csv");
tbl(1:5,:)
ans=5×5 table
         Timestamp              Day         Total    Westbound    Eastbound
    ___________________    _____________    _____    _________    _________

    2015-06-24 00:00:00    {'Wednesday'}     13          9            4    
    2015-06-24 01:00:00    {'Wednesday'}      3          3            0    
    2015-06-24 02:00:00    {'Wednesday'}      1          1            0    
    2015-06-24 03:00:00    {'Wednesday'}      1          1            0    
    2015-06-24 04:00:00    {'Wednesday'}      1          1            0    

x를 테이블에 있는 요일 이름으로 구성된 categorical형 배열로 정의합니다. yEastyWest를 동쪽 방향과 서쪽 방향 자전거 통행량을 포함하는 벡터로 정의합니다.

daynames = ["Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"];
x = categorical(tbl.Day,daynames);
yEast = tbl.Eastbound;
yWest = tbl.Westbound;

좌표축이 레이아웃의 사용 가능한 공간을 채우도록 'flow' 타일 배열로 타일 형식 차트 레이아웃을 만듭니다. nexttile 함수를 호출하여 axes 객체를 만들고 ax1로 반환합니다. 그런 다음 ax1swarmchart 함수로 전달하여 동쪽 방향 데이터의 군집 차트를 만듭니다.

tiledlayout('flow')
ax1 = nexttile;
y = tbl.Eastbound;
swarmchart(ax1,x,y,'.')

이 과정을 반복하여 두 번째 axes 객체를 만들고 서쪽 방향 통행량에 대한 군집 차트를 만듭니다.

ax2 = nexttile;
y = tbl.Westbound;
swarmchart(ax2,x,y,'.')

입력 인수

모두 축소

x 좌표로, 스칼라, 벡터 또는 행렬로 지정됩니다. x의 크기와 형태는 데이터의 형태에 따라 결정됩니다. 다음 표에서는 가장 일반적인 경우를 설명합니다.

플롯 유형좌표 지정 방법
단일 점

xy를 스칼라로 지정합니다. 예를 들면 다음과 같습니다.

swarmchart(1,1)

하나의 점 집합

xy를 길이가 같은 행 또는 열 벡터의 임의의 조합으로 지정합니다. 예를 들면 다음과 같습니다.

x = randi(3,100,1);
y = randn(1,100);
swarmchart(x,y)

색이 서로 다른 여러 개의 점 집합

모든 집합이 동일한 x 좌표 또는 y 좌표를 공유하는 경우, 공유되는 좌표를 벡터로 지정하고 나머지 좌표를 행렬로 지정합니다. 벡터의 길이는 행렬의 차원 중 하나와 일치해야 합니다. 예를 들면 다음과 같습니다.

x = randi(2,1,100); 
y = [randn(100,1) randn(100,1)+5];
swarmchart(x,y,100)
행렬이 정사각 행렬인 경우 swarmchart는 행렬의 각 열에 대한 개별적인 점 집합을 플로팅합니다.

또는 xy를 동일한 크기의 행렬로 지정합니다. 이 경우 swarmcharty의 각 열을 x의 대응하는 열에 대해 플로팅합니다. 예를 들면 다음과 같습니다.

x = randi(2,100,2);
y = [randn(100,1) randn(100,1)+5];
swarmchart(x,y,100)

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

y 좌표로, 스칼라, 벡터 또는 행렬로 지정됩니다. y의 크기와 형태는 데이터의 형태에 따라 결정됩니다. 다음 표에서는 가장 일반적인 경우를 설명합니다.

플롯 유형좌표 지정 방법
단일 점

xy를 스칼라로 지정합니다. 예를 들면 다음과 같습니다.

swarmchart(1,1)

하나의 점 집합

xy를 길이가 같은 행 또는 열 벡터의 임의의 조합으로 지정합니다. 예를 들면 다음과 같습니다.

x = randi(3,100,1);
y = randn(1,100);
swarmchart(x,y)

색이 서로 다른 여러 개의 점 집합

모든 집합이 동일한 x 좌표 또는 y 좌표를 공유하는 경우, 공유되는 좌표를 벡터로 지정하고 나머지 좌표를 행렬로 지정합니다. 벡터의 길이는 행렬의 차원 중 하나와 일치해야 합니다. 예를 들면 다음과 같습니다.

x = randi(2,1,100); 
y = [randn(100,1) randn(100,1)+5];
swarmchart(x,y,100)
행렬이 정사각 행렬인 경우 swarmchart는 행렬의 각 열에 대한 개별적인 점 집합을 플로팅합니다.

또는 xy를 동일한 크기의 행렬로 지정합니다. 이 경우 swarmcharty의 각 열을 x의 대응하는 열에 대해 플로팅합니다. 예를 들면 다음과 같습니다.

x = randi(2,100,2);
y = [randn(100,1) randn(100,1)+5];
swarmchart(x,y,100)

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

마커 크기로, 숫자형 스칼라, 벡터, 행렬 또는 빈 배열([])로 지정됩니다. 크기는 각 마커의 면적을 제곱포인트 단위로 제어합니다. 빈 배열은 디폴트 크기인 36포인트를 지정합니다. 크기를 지정하는 방법은 xy를 지정하는 방법과 원하는 플롯의 모양에 따라 달라집니다. 다음 표에서는 가장 일반적인 경우를 설명합니다.

원하는 마커 크기xy sz

모든 점에 같은 크기 사용

xy에 대해 기술된 벡터 또는 행렬의 모든 유효한 조합.

스칼라

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

x = randi(2,1,100); 
y = randn(100,1); 
swarmchart(x,y,100)

각 마커에 다른 크기 사용

동일한 길이의 벡터

  • xy와 길이가 같은 벡터.

  • 적어도 하나의 차원이 xy의 길이와 일치하는 행렬. 각 (x,y) 위치에서 서로 다른 크기의 마커 여러 개를 표시하려면 행렬을 지정하는 것이 유용합니다.

x, y, sz를 벡터로 지정합니다.

x = randi(2,1,100); 
y = randn(100,1); 
sz = randi([70 2000],100,1);
swarmchart(x,y,sz)

xy를 벡터로 지정하고 sz를 행렬로 지정합니다.

x = randi(2,1,100); 
y = randn(100,1); 
sz = randi([70 2000],100,2);
swarmchart(x,y,sz)

각 마커에 다른 크기 사용

xy 중 적어도 하나가 여러 데이터 점을 플로팅하기 위한 행렬임

  • 각 데이터 세트에 있는 점의 개수와 동일한 요소 개수를 갖는 벡터.

  • x 또는 y 행렬과 크기가 같은 행렬.

x를 벡터로 지정하고 y를 행렬로 지정하고 sz를 벡터로 지정합니다.

x = randi(2,1,100);
y = [randn(100,1) randn(100,1)+5];
sz = randi([70 2000],100,1);
swarmchart(x,y,sz)

x를 벡터로 지정하고 y를 행렬로 지정하고 szy와 크기가 같은 행렬로 지정합니다.

x = randi(2,1,100); 
y = [randn(100,1) randn(100,1)+5]; 
sz = randi([70 2000],100,2);
swarmchart(x,y,sz)

마커 색으로, 색 이름, RGB 3색, RGB 3색으로 구성된 행렬 또는 컬러맵 인덱스로 구성된 벡터로 지정됩니다.

  • 색 이름 — 색 이름(예: 'red') 또는 짧은 이름(예: 'r').

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

  • RGB 3색으로 구성된 행렬 — 각 행이 RGB 3색인 3열 행렬.

  • 컬러맵 인덱스로 구성된 벡터 — xy 벡터와 길이가 같은, 숫자형 값으로 구성된 벡터.

색을 지정하는 방법은 원하는 색 체계, 그리고 좌표 집합을 하나 플로팅할 것인지 아니면 여러 개 플로팅할 것인지에 따라 달라집니다. 다음 표에서는 가장 일반적인 경우를 설명합니다.

색 체계색을 지정하는 방법

모든 점에 하나의 색을 사용합니다.

아래 표에 나와 있는 색 이름 또는 짧은 이름을 지정하거나 하나의 RGB 3색을 지정합니다.

하나의 점 집합을 플로팅하고 색을 'red'로 지정합니다.

x = randi(2,1,100); 
y = randn(100,1); 
c = 'red';
swarmchart(x,y,[],c)

두 개의 점 집합을 플로팅하고 RGB 3색을 사용하여 색을 빨간색으로 지정합니다.

x = randi(2,1,100); 
y = randn(100,1); 
c = [0.6 0 0.9];
swarmchart(x,y,[],c)

컬러맵을 사용하여 각 점에 다른 색을 할당합니다.

숫자로 구성된 행 벡터 또는 열 벡터를 지정합니다. 숫자는 현재 컬러맵 배열의 요소를 참조합니다. 가장 작은 값은 컬러맵의 첫 번째 행에 매핑되고, 가장 큰 값은 마지막 행에 매핑됩니다. 중간값은 중간 행에 선형적으로 매핑됩니다.

플롯에 점 3개가 있는 경우 값이 컬러맵 인덱스로 해석되도록 열 벡터를 지정하십시오.

이 방법은 x, y, sz가 모두 벡터인 경우에만 사용할 수 있습니다.

100개의 컬러맵 인덱스를 지정하는 벡터 c를 만듭니다. 현재 컬러맵의 색을 사용하여 100개의 점을 플로팅합니다. 그런 다음, 컬러맵을 winter로 변경합니다.

x = randi(2,1,100); 
y = randn(100,1);
c = 1:100;
swarmchart(x,y,[],c)
colormap(gca,'winter')

각 점에 대해 사용자 지정 색을 만듭니다.

RGB 3색으로 구성된 m×3 행렬을 지정합니다. 여기서 m은 플롯에 있는 점의 개수입니다.

이 방법은 x, y, sz가 모두 벡터인 경우에만 사용할 수 있습니다.

100개의 무작위 RGB 3색을 지정하는 행렬 c를 만듭니다. 그런 다음, 해당 색을 사용하여 100개의 점으로 구성된 군집 차트를 만듭니다.

x = randi(2,1,100); 
y = randn(100,1); 
c = rand(100,3);
swarmchart(x,y,[],c)

각 데이터 세트에 대해 서로 다른 색을 만듭니다.

RGB 3색으로 구성된 n×3 행렬을 지정합니다. 여기서 n은 데이터 세트의 개수입니다.

이 방법은 x, y, sz 중 적어도 하나가 행렬인 경우에만 사용할 수 있습니다.

2개의 RGB 3색을 포함하는 행렬 c를 만듭니다. 그런 다음, 이러한 색을 사용하여 2개의 데이터 세트를 플로팅합니다.

x = randi(2,100,2); 
y = [randn(100,1) randn(100,1)+5]; 
c = [1 0 0; 0 0 1];
swarmchart(x,y,[],c)

일반적인 색의 색 이름과 RGB 3색

색 이름짧은 이름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

마커 유형으로, 다음 표에 나열된 값 중 하나로 지정됩니다.

마커설명결과로 생성되는 마커
"o"

Sample of circle marker

"+"플러스 기호

Sample of plus sign marker

"*"별표

Sample of asterisk marker

"."

Sample of point marker

"x"십자

Sample of cross marker

"_"가로선

Sample of horizontal line marker

"|"세로선

Sample of vertical line marker

"square"정사각형

Sample of square marker

"diamond"다이아몬드

Sample of diamond marker

"^"위쪽 방향 삼각형

Sample of upward-pointing triangle marker

"v"아래쪽 방향 삼각형

Sample of downward-pointing triangle marker

">"오른쪽 방향 삼각형

Sample of right-pointing triangle marker

"<"왼쪽 방향 삼각형

Sample of left-pointing triangle marker

"pentagram"펜타그램

Sample of pentagram marker

"hexagram"헥사그램

Sample of hexagram marker

마커의 내부를 채우는 옵션으로, 'filled'로 지정됩니다. 이 옵션은 면이 있는 마커(예: 'o' 또는 'square')와 함께 사용하십시오. 면이 없고 가장자리만 포함된 마커는 전혀 렌더링되지 않습니다('+', '*', '.''x').

'filled' 옵션은 Scatter 객체의 MarkerFaceColor 속성을 'flat'으로 설정하고 MarkerEdgeColor 속성을 'none'으로 설정합니다. 이 경우 MATLAB은 마커 면을 그리지만 가장자리는 그리지 않습니다.

플로팅할 데이터를 포함하는 소스 테이블로, table형이나 timetable형으로 지정됩니다.

x 좌표를 포함하는 테이블 변수로, 하나 이상의 테이블 변수 인덱스로 지정됩니다.

테이블 인덱스 지정하기

다음 인덱싱 방식 중 하나를 사용하여 원하는 변수를 지정합니다.

인덱싱 방식예제

변수 이름:

  • string형, 문자형 벡터 또는 셀형 배열.

  • pattern 객체.

  • "A" 또는 'A'A라는 변수

  • ["A","B"] 또는 {'A','B'}AB라는 두 개의 변수

  • "Var"+digitsPattern(1)"Var" 다음에 하나의 숫자가 오는 이름을 갖는 변수

변수 인덱스:

  • 테이블에서의 변수 위치를 나타내는 인덱스 번호.

  • 숫자 벡터.

  • 논리형 벡터. 일반적으로 이 벡터는 변수의 개수와 길이가 같지만 후행 0 값 또는 false 값을 생략할 수 있습니다.

  • 3 — 테이블의 세 번째 변수

  • [2 3] — 테이블의 두 번째 변수와 세 번째 변수

  • [false false true] — 세 번째 변수

변수 유형:

  • 지정된 유형의 변수를 선택하는 vartype 첨자.

  • vartype("categorical") — categorical형 값을 포함하는 모든 변수

데이터 플로팅하기

사용자가 지정하는 테이블 변수는 숫자형 값 또는 categorical형 값을 포함할 수 있습니다.

하나의 데이터 세트를 플로팅하려면 xvar에 대한 변수 1개와 yvar에 대한 변수 1개를 지정하십시오. 예를 들어, 정규분포된 난수 값으로 구성된 3개의 변수를 가진 테이블을 생성합니다. X1 변수와 Y 변수를 플로팅합니다.

tbl = table(randn(100,1),randn(100,1)+10,randn(100,1), ...
   'VariableNames',{'X1','X2','Y'});
swarmchart(tbl,'X1','Y')

여러 개의 데이터 세트를 함께 플로팅하려면 xvar, yvar 또는 둘 모두에 대해 변수를 여러 개 지정하십시오. 인수 둘 다에 여러 개의 변수를 지정하는 경우에는 동일한 개수의 변수를 지정해야 합니다.

예를 들어, X1 변수와 X2 변수는 x축에 플로팅하고 Y 변수는 y축에 플로팅합니다.

swarmchart(tbl,{'X1','X2'},'Y')

xvaryvar에 대해 서로 다른 인덱싱 방식을 사용할 수도 있습니다. 예를 들어, xvar을 변수 이름으로 지정하고 yvar을 인덱스 번호로 지정합니다.

swarmchart(tbl,'X1',3)

y 좌표를 포함하는 테이블 변수로, 하나 이상의 테이블 변수 인덱스로 지정됩니다.

테이블 인덱스 지정하기

다음 인덱싱 방식 중 하나를 사용하여 원하는 변수를 지정합니다.

인덱싱 방식예제

변수 이름:

  • string형, 문자형 벡터 또는 셀형 배열.

  • pattern 객체.

  • "A" 또는 'A'A라는 변수

  • ["A","B"] 또는 {'A','B'}AB라는 두 개의 변수

  • "Var"+digitsPattern(1)"Var" 다음에 하나의 숫자가 오는 이름을 갖는 변수

변수 인덱스:

  • 테이블에서의 변수 위치를 나타내는 인덱스 번호.

  • 숫자 벡터.

  • 논리형 벡터. 일반적으로 이 벡터는 변수의 개수와 길이가 같지만 후행 0 값 또는 false 값을 생략할 수 있습니다.

  • 3 — 테이블의 세 번째 변수

  • [2 3] — 테이블의 두 번째 변수와 세 번째 변수

  • [false false true] — 세 번째 변수

변수 유형:

  • 지정된 유형의 변수를 선택하는 vartype 첨자.

  • vartype("categorical") — categorical형 값을 포함하는 모든 변수

데이터 플로팅하기

사용자가 지정하는 테이블 변수는 숫자형 값, categorical형 값, datetime형 값 또는 duration형 값을 포함할 수 있습니다.

하나의 데이터 세트를 플로팅하려면 xvar에 대한 변수 1개와 yvar에 대한 변수 1개를 지정하십시오. 예를 들어, 정규분포된 난수 값으로 구성된 3개의 변수를 가진 테이블을 생성합니다. X1 변수와 Y 변수를 플로팅합니다.

tbl = table(randn(100,1),randn(100,1)+10,randn(100,1), ...
   'VariableNames',{'X1','X2','Y'});
swarmchart(tbl,'X1','Y')

여러 개의 데이터 세트를 함께 플로팅하려면 xvar, yvar 또는 둘 모두에 대해 변수를 여러 개 지정하십시오. 인수 둘 다에 여러 개의 변수를 지정하는 경우에는 동일한 개수의 변수를 지정해야 합니다.

예를 들어, X1 변수와 X2 변수는 x축에 플로팅하고 Y 변수는 y축에 플로팅합니다.

swarmchart(tbl,{'X1','X2'},'Y')

xvaryvar에 대해 서로 다른 인덱싱 방식을 사용할 수도 있습니다. 예를 들어, xvar을 변수 이름으로 지정하고 yvar을 인덱스 번호로 지정합니다.

swarmchart(tbl,'X1',3)

대상 좌표축으로, Axes 객체, PolarAxes 객체 또는 GeographicAxes 객체로 지정됩니다. 좌표축을 지정하지 않는 경우 MATLAB은 현재 좌표축에 플로팅하거나, 좌표축이 없다면 Axes 객체를 만듭니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: swarmchart(randi(4,500,1),randn(500,1),'MarkerFaceColor','red')는 빨간색으로 채워진 마커를 지정합니다.

참고

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

x차원의 지터(점 사이의 간격) 유형으로, 다음 값 중 하나로 지정됩니다.

  • 'none' — 점 사이에 간격을 설정하지 않습니다.

  • 'density' — 2차원 차트에서 y의 커널 밀도 추정값을 사용하여 점 사이의 간격을 설정합니다. 3차원 차트에서 이 옵션을 두 개 차원에 지정할 경우 점은 세 번째 차원의 커널 밀도 추정값에 따라 간격이 설정됩니다. 예를 들어, XJitterYJitter'density'로 설정하면 z의 커널 밀도 추정값이 사용됩니다.

  • 'rand' — 균등분포를 사용하여 점 사이에 임의의 간격을 설정합니다.

  • 'randn' — 정규분포를 사용하여 점 사이에 임의의 간격을 설정합니다.

x차원의 지터(점 사이의 오프셋)의 최대 양으로, 데이터 단위의 음이 아닌 스칼라 값으로 지정됩니다.

예를 들어, 지터를 인접한 점 사이의 최단 거리의 90%로 설정하려면 x의 고유한 값 사이의 최소 거리를 구하여 0.9만큼 스케일링하십시오.

XJitterWidth = 0.9 * min(diff(unique(x)));

색 데이터를 포함하는 테이블 변수로, 소스 테이블의 요소를 참조하는 변수 인덱스로 지정됩니다.

테이블 인덱스 지정하기

다음 인덱싱 방식 중 하나를 사용하여 원하는 변수를 지정합니다.

인덱싱 방식예제

변수 이름:

  • string형 스칼라 또는 문자형 벡터.

  • pattern 객체. pattern 객체는 하나의 변수만 참조해야 합니다.

  • "A" 또는 'A'A라는 변수

  • "Var"+digitsPattern(1)"Var" 다음에 하나의 숫자가 오는 이름을 갖는 변수

변수 인덱스:

  • 테이블에서의 변수 위치를 나타내는 인덱스 번호.

  • 논리형 벡터. 일반적으로 이 벡터는 변수의 개수와 길이가 같지만 후행 0 값 또는 false 값을 생략할 수 있습니다.

  • 3 — 테이블의 세 번째 변수

  • [false false true] — 세 번째 변수

변수 유형:

  • 지정된 유형의 테이블 변수를 선택하는 vartype 첨자. 첨자는 하나의 변수만 참조해야 합니다.

  • vartype("double") — double형 값을 포함하는 변수

색 데이터 지정하기

ColorVariable 속성을 지정하면 마커의 색이 제어됩니다. MarkerFaceColor 속성이 "flat"으로 설정된 경우 이 변수의 데이터가 마커 채우기 색을 제어합니다. 또한, MarkerEdgeColor"flat"으로 설정된 경우 이 데이터로 마커 윤곽선 색도 제어할 수 있습니다.

사용자가 지정하는 테이블 변수에는 임의의 숫자형 값이 포함될 수 있습니다. 이 값은 다음 형식 중 하나가 될 수 있습니다.

  • 현재 컬러맵에 선형으로 매핑되는 번호의 열.

  • RGB 3색으로 구성된 3열 배열. RGB 3색은 3개의 요소를 가진 벡터로, 각 요소의 값은 특정 색을 구성하는 빨간색, 녹색, 파란색 성분의 농도를 지정합니다. 농도의 범위는 [0,1]이어야 합니다. 예를 들어, [0.5 0.7 1]은 연한 파란색을 지정합니다.

ColorVariable 속성을 설정하면 MATLAB은 CData 속성을 업데이트합니다.

알고리즘

군집 차트의 점들은 y의 가우스 커널 밀도 추정값과 각 x 위치에서의 점의 상대적 개수에 의해 가중치가 부여되는 균등분포의 난수 값을 사용하여 간격이 설정됩니다. 이 동작은 swarmchart 함수를 호출할 때 Scatter 객체에 대한 XJitter 속성의 디폴트 'density' 설정에 대응됩니다.

x 위치에서의 점의 최대 산포는 기본적으로 인접 x 값 간 최소 거리의 90%입니다.

spread = 0.9 * min(diff(unique(x)));

Scatter 객체의 XJitterWidth 속성을 설정하여 산포를 제어할 수 있습니다.

가로 군집 차트는 동일한 알고리즘을 사용하여 간격이 설정되지만, 점들은 x의 가우스 커널 밀도 추정값을 사용하여 y 차원을 따라 간격이 설정됩니다. 이 경우 YJitterWidth 속성을 사용하여 산포를 제어할 수 있습니다.

버전 내역

R2020b에 개발됨

모두 확장

참고 항목

함수

속성