색상
지역의 색상을 정하는 방법은 세 가지다.
데이터에 색을 직접 지정하거나(color 속성), 시리즈에서 일괄 지정하거나(pointColors),
값 구간에 따라 자동으로 칠한다(컬러스케일).
데이터의 color 속성
{
data: [
{ id: '11', value: 10, color: '#a4c6ec' },
{ id: '31', value: 20, color: '#78a9e2' },
{ id: '32', value: 30, color: '#6794dc' },
]
}- 맵 시리즈는 데이터의
color속성을 읽고 해당 지역의 색상을 결정한다. color속성이 없는 경우style,nullStyle에 의해 지역 색상이 결정된다. 이것도 없으면 기본 색상이 적용된다.- 툴팁에도 해당 색상이 표시된다.
pointColors
color 속성이 없는 데이터포인트들의 색을 시리즈에서 지정한다.
색 배열이나 콜백으로 지정할 수 있고, style이나 color로 지정한 색보다 우선한다.
콜백으로 지정하면 데이터포인트마다 색을 결정할 수 있다.
{
// 인구가 늘어난 지역은 파란색, 줄어든 지역은 빨간색.
pointColors: (args) => {
const { prev, curr } = args.source;
return curr >= prev ? '#78a9e2' : '#ff5757';
},
}색 배열로 지정하면 데이터포인트 순서대로 돌아가며 적용된다.
asset으로 등록한 패턴이나 그라데이션을 'url(#아이디)' 형식으로 지정할 수도 있다.
{
asset: [
{ type: 'pattern', id: 'pattern-0', pattern: 0 },
{ type: 'pattern', id: 'pattern-1', pattern: 1 },
],
series: [
{
pointColors: ['url(#pattern-0)', 'url(#pattern-1)'],
},
],
}컬러스케일 연동
차트에 colorScale을 정의하면 맵 시리즈에 자동으로 연결되어,
각 지역이 value에 해당하는 컬러스케일 색으로 칠해진다.
시리즈 쪽에는 별도의 설정이 필요 없다.
{
colorScale: {
steps: [
{ from: 0, to: 50, color: '#d5deef' },
{ from: 50, to: 250, color: '#b1c9ef' },
{ from: 250, color: '#395886' },
],
},
series: [
{
dataUrl: '/assets/data/kr-sigun-population-density.json',
},
],
}- 연결을 끊으려면 시리즈에
colorScale: null을 지정한다. 라벨 표시용 시리즈처럼 컬러스케일 채색이 필요 없는 시리즈를 함께 쓸 때 사용한다. - 컬러스케일 자체의 설정(구간, 색, 위치)과 시리즈 연결 규칙의 상세는 색상자(Color Scale) 가이드를 참고한다.