작성일자 : 2024-09-20
Ver 0.1.1
Box Plot
Box Plot은 요약 통계 세트를 사용하여 정량적 값의 분포를 요약한다. Box Plot의 중앙값 눈금은 중앙값을 나타내며, 아래쪽과 위쪽은 각각 1분위와 3분위를 나타낸다. 상자 그림의 유형에 따라 수염의 끝은 여러 가지를 나타낼 수 있다.
Box Plot을 만들려면 mark_boxplot 메서드을 사용합니다.
속성
아래에 나열된 속성 외에도 상자, 중앙값, 규칙, 특이치 및 눈금을 사용하여 상자 그림의 여러 부분에 대한 기본 표시 속성을 지정할 수도 있다.
속성 | 유형 | 설명 |
extend | anyOf(string, number) | The extent of the whiskers. Available options include:
|
orient | Orientation | Orientation of the box plot. This is normally automatically determined based on types of fields on x and y channels. However, an explicit orient be specified when the orientation is ambiguous. Default value: "vertical". |
size | number | Size of the box and median tick of box plot |
color | anyOf(Color, Gradient, ExprRef) | Default color. Default value: "#4682b4" Note:
|
opacity | number | The opacity (value between [0,1]) of the mark. |
Types of Box Plot
Altair는 마크 정의 개체의 범위 속성으로 정의되는 두 가지 유형의 상자 그림을 지원한다.
1. Tukey Box Plot은 Altair의 기본 Box Plot이다. Tukey Box Plot의 경우, 수염은 가장 작은 데이터부터 범위 내에서 가장 큰 데이터까지 [Q1 - k * IQR, Q3 + k * IQR]에 걸쳐 있으며, 여기서 Q1과 Q3는 1분위와 3분위인 반면 IQR은 사분위간 범위(Q3-Q1)이다. 이러한 유형의 상자 그림에서는 범위를 설정하여 상수 k를 지정할 수 있다. 수염 너머에 특이점이 있는 경우 점 표시를 사용하여 표시다. 기본적으로 범위는 1.5이다.
import altair as alt
from vega_datasets import data
source = data.cars()
alt.Chart(source).mark_boxplot().encode(
alt.X("Miles_per_Gallon:Q").scale(zero=False)
)
2. min-max Box Plot은 아래쪽 수염과 위 수염이 각각 최소와 최대로 정의되는 Box plot 이다. 이러한 유형의 Box Plot에는 포인트가 이상값으로 간주되지 않습니다.
import altair as alt
from vega_datasets import data
source = data.cars()
alt.Chart(source).mark_boxplot(extent="min-max").encode(
alt.X("Miles_per_Gallon:Q").scale(zero=False),
alt.Y("Origin:N"),
)
Dimension and Orientation
Altair는 1D 및 2D Box Plot을 모두 지원한다:
1D 상자 그림은 연속 필드의 분포를 보여준다. 상자 그림의 방향은 연속 필드 축에 의해 자동으로 결정다. 예를 들어 y축에 연속 필드를 인코딩하여 수직 1D 상자 그림을 만들 수 있다.
import altair as alt
from vega_datasets import data
source = data.cars()
alt.Chart(source).mark_boxplot().encode(
alt.Y("Miles_per_Gallon:Q").scale(zero=False)
)
2D Box Plot은 범주별로 세분화된 연속 필드의 분포를 보여준다.
연속 필드와 이산 필드가 하나인 2D Box Plot의 경우, 연속 필드가 x축에 있는 경우 Box Plot은 수평이 된다.
Color, Size, and Opacity Encoding Channels
색상, 크기 및 불투명도 인코딩 채널을 사용하여 상자 그림에서 상자의 색상, 크기 및 불투명도를 사용자 지정할 수 있다.
크기는 상자와 중앙값 눈금에만 적용되고, 색상은 상자와 특이점에만 적용된다. 불투명도는 전체 Box Plot에 적용된다.
색상 인코딩 채널이 지정된 상자 그림의 예입니다.
import altair as alt
from vega_datasets import data
source = data.cars()
alt.Chart(source).mark_boxplot(extent="min-max").encode(
alt.X("Origin:N"),
alt.Y("Miles_per_Gallon:Q").scale(zero=False),
alt.Color("Origin:N").legend(None),
)
Tooltip Encoding Channels
Box Plot에 사용자 지정 tooltip을 추가할 수 있다. 사용자 지정 tooltip은 기본 Box Plot의 도구팁을 재정의한다.
tooltip 인코딩의 필드가 집계되지 않으면 특이치 마크의 tooltip을 대체합니다. 반면에 tooltip 인코딩의 필드가 집계되면 Box Plot의 tooltip과 휘스커 마크를 대체한다.
import altair as alt
from vega_datasets import data
source = data.cars()
alt.Chart(source).mark_boxplot(extent="min-max").encode(
alt.X("Miles_per_Gallon:Q").scale(zero=False),
alt.Y("Origin:N"),
alt.Tooltip("mean(Miles_per_Gallon)"),
)