Sunburst
선버스트 차트는 다음 시각 채널을 지원합니다:
color: 색상 채널, 여러 차원 또는 하나의 지표를 지원
label: 레이블 채널, 여러 차원과 여러 지표를 지원
tooltip: 툴팁 채널, 여러 차원과 여러 지표를 지원
선버스트 차트는 계층 데이터를 표시하며, 각 부채꼴의 크기가 수치 값을 나타냅니다.
적용 시나리오:
- 다단계 계층 데이터의 비율 분포 표시
- 계층 관계와 비율 강조
데이터 요구 사항:
- 면적 크기 매핑에 사용할 숫자 필드가 최소 1개 필요
- 계층 분할에 사용할 차원 필드가 최소 1개 필요
chartType
Type: "sunburst"
선버스트 차트
선버스트 차트는 계층 데이터의 비율 관계를 표시합니다.
예시 'sunburst'
dataset
Type: Record[]
데이터셋
TidyData 사양을 따르는 집계된 데이터셋으로, 차트의 데이터 소스와 구조를 정의합니다.
예시 [{category:'A', value:30}, {category:'B', value:70}]
dimensions
Type: HierarchyDimension[] | undefined
차원
데이터의 계층 구조를 정의하는 차원 설정입니다.
예시 [{id: 'category', alias: '카테고리'}]
id
Type: string
차원에 해당하는 필드 ID
alias
Type: string | undefined
차원 별칭
timeFormat
Type: TimeFormat | undefined
차원 날짜 형식 설정
type
Type: "year" | "quarter" | "month" | "week" | "day" | "hour" | "minute" | "second"
시간 입도이며 날짜 표시 정밀도를 결정합니다
encoding
Type: "tooltip" | "label" | "hierarchy" | undefined
차원이 매핑되는 채널
- hierarchy: 여러 차원을 계층 채널에 매핑할 수 있습니다
- label: 여러 차원을 레이블 채널에 매핑할 수 있습니다
- tooltip: 여러 차원을 툴팁 채널에 매핑할 수 있습니다
첫 번째 차원은 color 채널에 직접 매핑됩니다.
measures
Type: HierarchyMeasure[] | undefined
지표
부채꼴의 크기(면적)를 정의하는 지표 설정입니다.
예시 [{id: 'value', alias: '값'}]
id
Type: string
지표 ID, 중복될 수 없습니다
alias
Type: string | undefined
지표 별칭, 중복 허용. 설정하지 않으면 alias는 id가 됩니다
autoFormat
Type: boolean | undefined
자동 숫자 서식, 기본 활성화, 가장 높은 우선순위
autoFormat=true이면 모든 numFormat 설정을 덮어씁니다
활성화하면 그래프 데이터 레이블과 툴팁이 지표 값과 로케일에 따라 적절한 형식을 자동으로 선택합니다
서식 규칙: compact notation이 활성화된 십진수, 소수 자릿수 최소 0자리 및 최대 2자리, 자동 반올림, 브라우저의 Intl.NumberFormat 구현 사용
예:
- locale=zh-CN: 749740.264 → 74.45万
- locale=en-US: 749740.264 → 744.5K
numFormat
Type: NumFormat | undefined
지표의 사용자 지정 숫자 서식이며 레이블과 툴팁에 자동 적용됩니다
참고: 사용자 지정 서식을 사용하려면 autoFormat=false를 명시적으로 설정해야 합니다. 그렇지 않으면 autoFormat이 이 설정을 덮어씁니다
type
Type: "number" | "percent" | "permille" | "scientific" | undefined
숫자 서식 유형. 숫자(십진수), 퍼센트(%), 퍼밀(‰), 과학적 표기법을 지원
ratio
Type: number | undefined
숫자 서식 비율, 0일 수 없습니다
예시 - 100000은 10万으로 변환, ratio:10000, symbol:"万" - 100000은 10K로 변환, ratio:1000, symbol:"K"
symbol
Type: string | undefined
숫자 서식 기호, 예: %, ‰
예시 - 100000은 10万으로 변환, ratio:10000, symbol:"万" - 100000은 10K로 변환, ratio:1000, symbol:"K"
thousandSeparator
Type: boolean | undefined
숫자 서식의 천 단위 구분 기호
suffix
Type: string | undefined
숫자 서식 접미사
prefix
Type: string | undefined
숫자 서식 접두사
fractionDigits
Type: number | undefined
숫자 서식의 소수 자릿수. 브라우저 Intl.NumberFormat의 minimumFractionDigits와 maximumFractionDigits를 사용하며 significantDigits보다 우선순위가 낮습니다
예시 - 1234.5678 은 1235 로 변환, fractionDigits:0 (roundingMode:halfCeil) - 1234.5678 은 1234.6 로 변환, fractionDigits:1 (roundingMode:halfCeil) - 1234.5678 은 1234.57 로 변환, fractionDigits:2 (roundingMode:halfCeil) - 1234.5678 은 1230.568 로 변환, fractionDigits:3 (roundingMode:halfCeil) - 1234.5678 은 1234.5678 로 변환, fractionDigits:4 (roundingMode:halfCeil) - 1234.5678 은 1234.56780 로 변환, fractionDigits:5 (roundingMode:halfCeil)
significantDigits
Type: number | undefined
숫자 서식의 유효 자릿수. 브라우저 Intl.NumberFormat의 minimumSignificantDigits와 maximumSignificantDigits를 사용하며 fractionDigits보다 우선순위가 높습니다
예시 - 1234.5678 은 1000 로 변환, significantDigits:1 - 1234.5678 은 1200 로 변환, significantDigits:2 - 1234.5678 은 1230 로 변환, significantDigits:3 - 1234.5678 은 1234 로 변환, significantDigits:4 - 1234.5678 은 1234.6 로 변환, significantDigits:5 (roundingMode:halfCeil) - 1234.5678 은 1234.57 로 변환, significantDigits:6 (roundingMode:halfCeil) - 1234.5678 은 1234.568 로 변환, significantDigits:7 (roundingMode:halfCeil) - 1234.5678 은 1234.5678 로 변환, significantDigits:8 (roundingMode:halfCeil)
roundingPriority
Type: "morePrecision" | "lessPrecision" | undefined
significantDigits와 fractionDigits가 모두 설정된 경우 숫자 서식의 반올림 우선순위. 브라우저 Intl.NumberFormat을 사용하며 Intl.NumberFormat의 roundingPriority와 같은 규칙을 따릅니다
예시 - 1234.5678 은 1230 로 변환, significantDigits:3 (roundingPriority:lessPrecision) - 1234.5678 은 1234.5678 로 변환, significantDigits:3 (roundingPriority:morePrecision)
roundingMode
Type: "floor" | "ceil" | "expand" | "trunc" | "halfCeil" | "halfFloor" | "halfExpand" | "halfTrunc" | "halfEven" | undefined
숫자 서식의 반올림 모드. 브라우저 Intl.NumberFormat을 사용하며 Intl.NumberFormat의 roundingMode와 같은 규칙을 따릅니다
format
Type: NumFormat | undefined
type
Type: "number" | "percent" | "permille" | "scientific" | undefined
숫자 서식 유형. 숫자(십진수), 퍼센트(%), 퍼밀(‰), 과학적 표기법을 지원
ratio
Type: number | undefined
숫자 서식 비율, 0일 수 없습니다
예시 - 100000은 10万으로 변환, ratio:10000, symbol:"万" - 100000은 10K로 변환, ratio:1000, symbol:"K"
symbol
Type: string | undefined
숫자 서식 기호, 예: %, ‰
예시 - 100000은 10万으로 변환, ratio:10000, symbol:"万" - 100000은 10K로 변환, ratio:1000, symbol:"K"
thousandSeparator
Type: boolean | undefined
숫자 서식의 천 단위 구분 기호
suffix
Type: string | undefined
숫자 서식 접미사
prefix
Type: string | undefined
숫자 서식 접두사
fractionDigits
Type: number | undefined
숫자 서식의 소수 자릿수. 브라우저 Intl.NumberFormat의 minimumFractionDigits와 maximumFractionDigits를 사용하며 significantDigits보다 우선순위가 낮습니다
예시 - 1234.5678 은 1235 로 변환, fractionDigits:0 (roundingMode:halfCeil) - 1234.5678 은 1234.6 로 변환, fractionDigits:1 (roundingMode:halfCeil) - 1234.5678 은 1234.57 로 변환, fractionDigits:2 (roundingMode:halfCeil) - 1234.5678 은 1230.568 로 변환, fractionDigits:3 (roundingMode:halfCeil) - 1234.5678 은 1234.5678 로 변환, fractionDigits:4 (roundingMode:halfCeil) - 1234.5678 은 1234.56780 로 변환, fractionDigits:5 (roundingMode:halfCeil)
significantDigits
Type: number | undefined
숫자 서식의 유효 자릿수. 브라우저 Intl.NumberFormat의 minimumSignificantDigits와 maximumSignificantDigits를 사용하며 fractionDigits보다 우선순위가 높습니다
예시 - 1234.5678 은 1000 로 변환, significantDigits:1 - 1234.5678 은 1200 로 변환, significantDigits:2 - 1234.5678 은 1230 로 변환, significantDigits:3 - 1234.5678 은 1234 로 변환, significantDigits:4 - 1234.5678 은 1234.6 로 변환, significantDigits:5 (roundingMode:halfCeil) - 1234.5678 은 1234.57 로 변환, significantDigits:6 (roundingMode:halfCeil) - 1234.5678 은 1234.568 로 변환, significantDigits:7 (roundingMode:halfCeil) - 1234.5678 은 1234.5678 로 변환, significantDigits:8 (roundingMode:halfCeil)
roundingPriority
Type: "morePrecision" | "lessPrecision" | undefined
significantDigits와 fractionDigits가 모두 설정된 경우 숫자 서식의 반올림 우선순위. 브라우저 Intl.NumberFormat을 사용하며 Intl.NumberFormat의 roundingPriority와 같은 규칙을 따릅니다
예시 - 1234.5678 은 1230 로 변환, significantDigits:3 (roundingPriority:lessPrecision) - 1234.5678 은 1234.5678 로 변환, significantDigits:3 (roundingPriority:morePrecision)
roundingMode
Type: "floor" | "ceil" | "expand" | "trunc" | "halfCeil" | "halfFloor" | "halfExpand" | "halfTrunc" | "halfEven" | undefined
숫자 서식의 반올림 모드. 브라우저 Intl.NumberFormat을 사용하며 Intl.NumberFormat의 roundingMode와 같은 규칙을 따릅니다
encoding
Type: "tooltip" | "label" | "size" | undefined
지표가 매핑되는 채널
- size: 지표를 크기 채널에 매핑하며 Treemap 및 Sunburst 같은 차트에서 면적 또는 크기를 표시하는 데 사용됩니다.
- label: 지표를 레이블 채널에 매핑
- tooltip: 지표를 툴팁 채널에 매핑
parentId
Type: string | undefined
평면 지표 설정 형태에서 트리 형태의 지표 그룹을 구성합니다. parentId는 부모 지표 그룹의 id를 가리키며 지표 트리를 구성하는 데 사용됩니다
지표 트리를 설정하는 방법은 두 가지입니다. 옵션 1은 children으로 지표 트리를 직접 설정하고, 옵션 2는 parentId가 있는 평면 지표 목록을 설정합니다. 두 방법은 동시에 사용할 수 없습니다
page
Type: Page | undefined
페이지네이션 설정
페이지네이션에 사용할 필드명을 지정합니다. 차원이어야 합니다
field
Type: string
페이지네이션 필드. 페이지네이션에 사용할 필드명을 지정하며 차원이어야 합니다
currentValue
Type: string
현재 페이지네이션 값. 현재 페이지를 결정하는 데 사용하는 값을 지정합니다
예시 '2023-01-01'
backgroundColor
Type: BackgroundColor
차트 배경색
배경색은 색상 문자열(예: 'red', 'blue') 또는 hex, rgb, rgba 값(예: '#ff0000', 'rgba(255,0,0,0.5)')일 수 있습니다
color
Type: Color | undefined
색상
차트의 색상 구성을 정의하는 색상 설정이며 색상 목록, 색상 매핑, 색상 그라데이션을 포함합니다.
colorScheme
Type: string[] | undefined
차트의 여러 요소 색상을 정의하는 이산 색상 스킴
예시 ['#FFCDD2,#F8BBD0,#E1BEE7,#D1C4E9,#C5CAE9,#BBDEFB,#B3E5FC,#B2EBF2,#B2DFDB,#C8E6C9,#DCEDC8,#F0F4C3,#FFF9C4,#FFECB3,#FFE0B2']
linearColorScheme
Type: string[] | undefined
차트의 여러 요소 색상을 정의하는 선형 그라데이션 색상 스킴
예시 ['#FFCDD2, #F8BBD0]
colorMapping
Type: Record<string, string> | undefined
데이터 값을 특정 색상에 매핑하는 색상 매핑
예시 { 'profit': 'red', 'sales': 'blue', }
positiveColor
Type: string | undefined
양수/음수 색상 설정. 차트의 양수 값 색상을 정의합니다
negativeColor
Type: string | undefined
양수/음수 색상 설정. 차트의 음수 값 색상을 정의합니다
label
Type: Label | undefined
레이블
그래프 데이터 레이블을 정의하는 레이블 설정이며 위치, 형식, 스타일을 포함합니다.
enable
Type: false | true
레이블 기능 활성화 여부
wrap
Type: boolean | undefined
레이블 줄바꿈 여부
showValue
Type: boolean | undefined
레이블에 지표 값을 표시할지 여부
여러 지표 시나리오에서는 값 충돌을 걱정할 필요가 없습니다. 모든 플롯 관련 지표가 foldMeasures 처리를 거쳐 단일 데이터 포인트를 나타내는 하나의 지표로 병합됩니다
참고: encoding의 label 우선순위가 더 높으므로 이 설정은 encoding의 label에 영향을 주지 않습니다
showValuePercent
Type: boolean | undefined
레이블에 지표 값의 백분율을 표시할지 여부
여러 지표 시나리오에서는 값 충돌을 걱정할 필요가 없습니다. 모든 플롯 관련 지표가 foldMeasures 처리를 거쳐 단일 데이터 포인트를 나타내는 하나의 지표로 병합됩니다
참고: encoding의 label 우선순위가 더 높으므로 이 설정은 encoding의 label에 영향을 주지 않습니다
showDimension
Type: boolean | undefined
레이블에 차원 레이블을 표시할지 여부
모든 차원 레이블 표시
참고: encoding의 label 우선순위가 더 높으므로 이 설정은 encoding의 label에 영향을 주지 않습니다
autoFormat
Type: boolean | undefined
레이블 값을 자동 서식화할지 여부. autoFormat이 true이면 numFormat 설정은 무시됩니다
numFormat
Type: NumFormat | undefined
레이블 값 서식 설정입니다. measure의 format과 병합되며, measure의 format 우선순위가 더 높습니다. numFormat의 우선순위는 autoFormat보다 낮습니다
type
Type: "number" | "percent" | "permille" | "scientific" | undefined
숫자 서식 유형. 숫자(십진수), 퍼센트(%), 퍼밀(‰), 과학적 표기법을 지원
ratio
Type: number | undefined
숫자 서식 비율, 0일 수 없습니다
예시 - 100000은 10万으로 변환, ratio:10000, symbol:"万" - 100000은 10K로 변환, ratio:1000, symbol:"K"
symbol
Type: string | undefined
숫자 서식 기호, 예: %, ‰
예시 - 100000은 10万으로 변환, ratio:10000, symbol:"万" - 100000은 10K로 변환, ratio:1000, symbol:"K"
thousandSeparator
Type: boolean | undefined
숫자 서식의 천 단위 구분 기호
suffix
Type: string | undefined
숫자 서식 접미사
prefix
Type: string | undefined
숫자 서식 접두사
fractionDigits
Type: number | undefined
숫자 서식의 소수 자릿수. 브라우저 Intl.NumberFormat의 minimumFractionDigits와 maximumFractionDigits를 사용하며 significantDigits보다 우선순위가 낮습니다
예시 - 1234.5678 은 1235 로 변환, fractionDigits:0 (roundingMode:halfCeil) - 1234.5678 은 1234.6 로 변환, fractionDigits:1 (roundingMode:halfCeil) - 1234.5678 은 1234.57 로 변환, fractionDigits:2 (roundingMode:halfCeil) - 1234.5678 은 1230.568 로 변환, fractionDigits:3 (roundingMode:halfCeil) - 1234.5678 은 1234.5678 로 변환, fractionDigits:4 (roundingMode:halfCeil) - 1234.5678 은 1234.56780 로 변환, fractionDigits:5 (roundingMode:halfCeil)
significantDigits
Type: number | undefined
숫자 서식의 유효 자릿수. 브라우저 Intl.NumberFormat의 minimumSignificantDigits와 maximumSignificantDigits를 사용하며 fractionDigits보다 우선순위가 높습니다
예시 - 1234.5678 은 1000 로 변환, significantDigits:1 - 1234.5678 은 1200 로 변환, significantDigits:2 - 1234.5678 은 1230 로 변환, significantDigits:3 - 1234.5678 은 1234 로 변환, significantDigits:4 - 1234.5678 은 1234.6 로 변환, significantDigits:5 (roundingMode:halfCeil) - 1234.5678 은 1234.57 로 변환, significantDigits:6 (roundingMode:halfCeil) - 1234.5678 은 1234.568 로 변환, significantDigits:7 (roundingMode:halfCeil) - 1234.5678 은 1234.5678 로 변환, significantDigits:8 (roundingMode:halfCeil)
roundingPriority
Type: "morePrecision" | "lessPrecision" | undefined
significantDigits와 fractionDigits가 모두 설정된 경우 숫자 서식의 반올림 우선순위. 브라우저 Intl.NumberFormat을 사용하며 Intl.NumberFormat의 roundingPriority와 같은 규칙을 따릅니다
예시 - 1234.5678 은 1230 로 변환, significantDigits:3 (roundingPriority:lessPrecision) - 1234.5678 은 1234.5678 로 변환, significantDigits:3 (roundingPriority:morePrecision)
roundingMode
Type: "floor" | "ceil" | "expand" | "trunc" | "halfCeil" | "halfFloor" | "halfExpand" | "halfTrunc" | "halfEven" | undefined
숫자 서식의 반올림 모드. 브라우저 Intl.NumberFormat을 사용하며 Intl.NumberFormat의 roundingMode와 같은 규칙을 따릅니다
labelFontSize
Type: number | undefined
레이블 font size
labelFontWeight
Type: string | number | undefined
레이블 글꼴 두께
labelBackgroundColor
Type: string | undefined
레이블 배경색
labelStroke
Type: string | undefined
레이블 테두리 색상
labelColor
Type: string | undefined
레이블font색상
labelColorSmartInvert
Type: boolean | undefined
그래픽 요소 색상에 따라 레이블 글꼴 색상을 자동 반전할지 여부
labelPosition
Type: "inside" | "outside" | undefined
레이블 위치
labelOverlap
Type: boolean | undefined
레이블 겹침 방지 기능 활성화 여부
selector
Type: Selector | Selectors | undefined
레이블 filtering; the default relationship between selectors is OR
field
Type: string
차원 필드. 특정 차원 항목의 ID
operator
Type: "in" | "not in" | undefined
연산자
- in: 차원 필드 값이 지정한 값 안에 있는 데이터 항목 선택
- not in: 차원 필드 값이 지정한 값 안에 없는 데이터 항목 선택
op
Type: "in" | "not in" | undefined
연산자
- in: 차원 필드 값이 지정한 값 안에 있는 데이터 항목 선택
- not in: 차원 필드 값이 지정한 값 안에 없는 데이터 항목 선택
operator와 동일
value
Type: string | number | (string | number)[]
차원 필드 값을 선택합니다. 배열을 지원
dynamicFilter
Type: ChartDynamicFilter | undefined
동적 필터(AI 생성 코드 실행)
AI가 생성한 JavaScript 코드로 복잡한 데이터 필터링 로직을 구현합니다
핵심 기능:
- 임의로 복잡한 데이터 필터 조건 지원
- 데이터 조작에 내장 유틸리티 함수 사용
- 브라우저 환경에서 안전하게 실행(Web Worker 샌드박스)
환경 요구 사항: 브라우저 환경만 지원하며 Node.js 환경에서는 fallback을 사용합니다
참고: selector와 dynamicFilter는 동시에 사용할 수 없으며 dynamicFilter의 우선순위가 더 높습니다
차트 동적 필터 설정
AI가 생성한 JavaScript 코드로 차트 마크(막대, 점 등) 필터링을 구현합니다
type
Type: "row-with-field"
description
Type: string | undefined
사용자의 필터링 요구 사항 설명(자연어)
예시 "매출이 1000보다 큰 열 강조"
"각 영역에서 이익률이 가장 높은 열 강조"
code
Type: string
AI 생성 JavaScript 필터링 코드
- 내장 유틸리티 함수만 사용할 수 있습니다(_ 또는 R로 접근)
- 입력 매개변수: data(배열), 각 항목에는 행 번호를 나타내는 __row_index 필드가 포함됩니다
- 행 인덱스와 필드 조합 배열을 반환해야 합니다: Array<{ __row_index: number, field: string }>
- __row_index는 원본 데이터 항목의 행 번호를 나타내고 field는 강조할 필드를 나타냅니다
- 금지: eval, Function, 비동기 작업, DOM API, 네트워크 요청
예시 sales가 1000보다 큰 데이터 항목의 sales 필드 강조
각 영역에서 이익률이 가장 높은 데이터 항목 강조
여러 조건으로 필터링된 데이터 항목 강조
fallback
Type: Selector | Selectors | undefined
코드 실행 실패 또는 환경 미지원 시 fallback 방안
field
Type: string
차원 필드. 특정 차원 항목의 ID
operator
Type: "in" | "not in" | undefined
연산자
- in: 차원 필드 값이 지정한 값 안에 있는 데이터 항목 선택
- not in: 차원 필드 값이 지정한 값 안에 없는 데이터 항목 선택
op
Type: "in" | "not in" | undefined
연산자
- in: 차원 필드 값이 지정한 값 안에 있는 데이터 항목 선택
- not in: 차원 필드 값이 지정한 값 안에 없는 데이터 항목 선택
operator와 동일
value
Type: string | number | (string | number)[]
차원 필드 값을 선택합니다. 배열을 지원
result
Type: DynamicFilterExecutionResult<RowWithFieldRes> | undefined
동적 필터 실행 결과(런타임 필드)
prepare() 단계에서 작성되며 런타임에는 읽기 전용
success
Type: false | true
data
Type: T[] | undefined
error
Type: string | undefined
tooltip
Type: Tooltip | undefined
툴팁
차트 툴팁을 정의하는 툴팁 설정이며 위치, 형식, 스타일 등을 포함합니다.
enable
Type: false | true
툴팁 활성화 여부
theme
Type: Theme | undefined
차트 테마. 테마는 우선순위가 낮으며 모든 차트 유형이 공유하는 공통 설정과 개별 차트 범주의 특정 설정을 포함합니다
내장 라이트 및 다크 테마. 사용자는 Builder를 통해 사용자 지정 테마를 정의할 수 있습니다
테마
내장 라이트 및 다크 테마. 새 테마는 registerTheme으로 사용자 지정할 수 있습니다.
예시 'dark'
'light'
length
Type: number
brand
Type: brand
locale
Type: "zh-CN" | "en-US" | "ja-JP" | "de-DE" | "id-ID" | "fr-FR" | "ko-KR" | "vi-VN" | undefined
언어
차트 언어 설정. 'zh-CN'과 'en-US'를 지원합니다. 또한 intl.setLocale('zh-CN') 메서드를 호출해 언어를 지정할 수 있습니다.