v1.5.2
✨ 기능 개선
CSS 변수 적용 범위 변경 [🚨주의]
- 기존:
realchart-style.css의 CSS 변수(--color-1등)가:root에도 선언되어 페이지 전체에 노출되었습니다. - 변경:
.rct-root에만 선언합니다. 차트 표시는 이전과 같습니다. - 차트 밖의 HTML에서
var(--color-1)같은 변수를 쓰고 있었다면 페이지에서 직접 선언해야 합니다.
게이지 기본 색 변경 [🚨주의]
- 기존: 값 색이 게이지마다 달랐고(circle
#0098ff, linear#008000, bullet#333), 그룹 안 게이지는 모두 같은 색이었으며, dark · real 테마에서도 값 · 트랙 · 바늘 · 목표선 색이 라이트 테마와 같았습니다. - 변경: 테마별 게이지 전용 6색 팔레트(
--rct-gauge-color-1~--rct-gauge-color-6)를 사용합니다. 단독 게이지는 1번 색, 그룹 안 게이지는 순서대로 1~6번 색이고 7번째부터 반복합니다. - 값 · 트랙 · 바늘 · 핀 · 목표선 · 라벨 · 시계판이 테마에 맞는 색으로 표시됩니다.
- bullet 게이지의 목표선과 값 · 목표 라벨에 배경색 테두리가 추가되어 막대 위에서도 잘 보입니다.
valueBar.style·valueRim.style로 지정한 색과 사용자 class는 기본 색보다 우선합니다.
Histogram (opens in a new tab) bin 계산 변경 [🚨주의]
같은 데이터라도 아래 설정을 쓰면 bin 개수와 빈도가 이전과 달라질 수 있습니다. 기본 설정(binsNumber: 'squreRoot')의 bin 개수 계산은 같습니다.
binsNumber(opens in a new tab):'struges'는 ⌈log₂ n⌉ + 1개로 계산하여 이전보다 bin이 하나 많아집니다.binWidth(opens in a new tab): bin 범위를 지정한 폭으로 나눕니다. 나누어떨어지지 않으면 마지막 bin은 최댓값에서 끝납니다.minValue(opens in a new tab) ·maxValue(opens in a new tab): 데이터 밖의 값이면 bin 범위만 넓히고 빈도에는 세지 않습니다.- bin 경계의 부동소수 오차를 보정하여, 경계에 있는 값이 앞 bin으로 들어가던 경우의 빈도가 달라질 수 있습니다.
데이터포인트 선택 동작 [🚨주의]
chart.selection.select·add는 선택할 수 없는 시리즈의 데이터포인트를 무시하고false를 반환합니다.- split 차트에서도 제목 · 축을 클릭하면 일반 차트처럼 선택이 해제됩니다.
- 터치에서 빈 영역을 tap하면 선택이 해제되고, 빈 영역을 길게 누르면 선택은 유지한 채 툴팁만 닫힙니다.
- 데이터포인트 라벨 위를 클릭하거나 tap해도 선택이 해제되지 않습니다.
다시 그릴 때 hover · 툴팁 유지
- 차트를 다시 그려도 그 데이터포인트가 그려져 있으면 hover 표시와 툴팁을 유지합니다. 터치로 고정한 툴팁도 같습니다.
- 터치로 고정한 툴팁의 말풍선을 tap하거나 길게 눌러도 툴팁이 닫히지 않습니다.
➕ 기능 추가
selection (opens in a new tab) 데이터포인트 선택 설정
- 선택 관련 옵션을 시리즈의
selection으로 묶어 지정할 수 있습니다.true로 지정하면 선택만 켭니다. Bar, CircleBar, Pie, PictorialBar 시리즈에서 지원합니다. - 선택되지 않은 포인트의 스타일을 지정하는
unselectedStyle과 focus 표시 여부를 지정하는focus.visible이 추가되었습니다. - 기존
selectable·selectStyle·focusStyle도 그대로 동작하며, 둘 다 지정하면selection이 우선합니다. 기존 옵션은 v1.6.0부터 deprecated됩니다.
series: {
type: 'bar',
selection: {
visible: true,
style: { stroke: '#333' },
unselectedStyle: { opacity: 0.4 },
focus: { style: { stroke: '#4F46E5' } }
}
}chart.selectAll (opens in a new tab) · chart.unselectAll (opens in a new tab) x값으로 선택 · 해제
- x값으로 여러 데이터포인트를 한 번에 선택하거나 해제하는 API가 추가되었습니다.
selectAll은 기존 선택에 더합니다. unselectAll()처럼 인자를 주지 않으면 전체 선택을 해제합니다.- 데이터포인트는 첫 렌더링 때 만들어지므로, 첫 화면에서 고르려면
createChart의 callback 안에서 호출합니다.
chart.selectAll('1월'); // 모든 시리즈에서 x가 '1월'인 포인트
chart.selectAll({ sales: ['1월', '3월'], cost: '2월' }); // 시리즈마다 다른 x
chart.unselectAll('1월');
chart.unselectAll(); // 전체 해제자세한 내용은 데이터포인트 선택 가이드 (opens in a new tab)를 참조하세요.
label.overflow (opens in a new tab) 축 라벨 줄바꿈 · 말줄임
- 선언만 있고 동작하지 않던 축 라벨
overflow가 구현되었습니다.'wrap'은 여러 줄로 나누고,'ellipsis'는 한 줄로 두고 말줄임합니다. 기본값'clip'의 동작은 이전과 같습니다. - 최대 폭을 지정하는
maxWidth(opens in a new tab)(@default '33%')와'wrap'의 최대 줄 수를 지정하는maxLines(opens in a new tab)(@default 0)가 추가되었습니다. - 줄바꿈 · 말줄임한 라벨에 마우스를 올리면 원래 텍스트가 표시됩니다.
xAxis: {
label: { overflow: 'wrap', maxWidth: 100, maxLines: 2 }
}scrollBar.wheel (opens in a new tab) 마우스 휠 스크롤
true로 지정하면 축이 zoom된 동안 마우스 휠(트랙패드 스크롤 포함)로 표시 범위를 옮길 수 있습니다. (@default false)- 스크롤바가 표시되어 있어야 동작합니다. 범위 끝에 닿으면 휠을 막지 않아 페이지가 스크롤됩니다.
scrollBar.opposite (opens in a new tab) 스크롤바 반대편 배치
true로 지정하면 스크롤바를 축 쪽이 아니라 plot 영역의 반대편에 표시합니다. (@default false)- split 차트에서는 적용되지 않습니다.
label.autoFit (opens in a new tab) circle 게이지 라벨 자동 맞춤
true로 지정하면 라벨이 내부 원 반지름의 90%를 벗어날 때 그 안에 들어가도록 줄여서 표시합니다. (@default false)sweepAngle이 180 이하이면 라벨을 원호 쪽 반원 안으로 옮긴 뒤 맞춥니다. 게이지 그룹에 속한 게이지에는 적용되지 않습니다.realchart-gauge모듈이 필요합니다. guide/modules (opens in a new tab)를 참조하세요.
🐞 버그 수정
seriesNavigator (opens in a new tab)
seriesNavigator: true로 지정하거나 로드 뒤 내비게이터를 켜면 렌더가 중단되던 문제가 수정되었습니다.- 시리즈가 없거나 첫 시리즈가 숨겨져 있으면 렌더가 중단되던 문제가 수정되었습니다. 소스 시리즈를 숨기면 내비게이터의 시리즈도 함께 숨겨지고, 다른 시리즈로 바뀌지 않습니다.
- 소스 시리즈의 데이터를 바꿔도 내비게이터에 반영되지 않던 문제가 수정되었습니다.
source(opens in a new tab)에 index를 지정하면 무시되던 문제가 수정되었습니다.- 자동으로 x를 매긴 소스(
categories·xStart·xStep)와usePointSource소스에서 내비게이터 x축 라벨이 본 축과 다르던 문제가 수정되었습니다. seriesNavigator.xAxis에type없이 다른 설정만 지정하면 linear 축으로 고정되던 문제가 수정되었습니다. 이제 소스 축의 type을 따릅니다.loadOptions·updateOptions로 바꾼 내비게이터 설정이 반영되지 않던 문제가 수정되었습니다.
zoom
- 첫 렌더링 전에 호출한
axis.zoom이 첫 렌더링을 중단시키던 문제가 수정되었습니다. - 드래그 zoom의 폭이 0이거나
zoom()의 범위가 길이 0 · 범위 밖이면 축이 한 점으로 무너져 시리즈가 사라지던 문제가 수정되었습니다. 이제 이런zoom()은 무시되고false를 반환합니다. - zoom한 상태에서 데이터를 바꾸면 해당 시리즈가 다음 렌더링까지 사라지던 문제가 수정되었습니다.
- Waterfall 시리즈에서 zoom 범위 안에 표시할 포인트가 없으면 렌더가 중단되던 문제가 수정되었습니다.
축
- 고유한 x값이 하나뿐인 차트에 x축 범위가 있으면 첫 렌더링이 중단되던 문제가 수정되었습니다.
- 축 라벨
text에${label}과 다른 파라미터를 함께 쓰면 오류가 발생하던 문제가 수정되었습니다. - 위쪽 x축과
inverted차트의 왼쪽 x축에서 스크롤바의gap이 바깥쪽에 적용되던 문제가 수정되었습니다.
Histogram (opens in a new tab) · BellCurve (opens in a new tab) 시리즈
- 숫자
binsNumber, 빈 data, 값이 모두 null이거나 zoom 범위 안에 bin이 없을 때 렌더가 중단되던 문제가 수정되었습니다. 잘못된binsNumber는 기본값으로 계산합니다. - Histogram의 값이 모두 같으면 폭 0인 bin이 겹쳐 표시되던 문제가 수정되었습니다. 이제 그 값을 가운데 둔 bin 하나로 표시합니다.
data에 json 객체 · 배열 ·yField· ChartData 행을 지정하면 Histogram은 렌더가 중단되고 BellCurve는 곡선이 사라지던 문제가 수정되었습니다.- BellCurve
data의 null이 0처럼 계산되던 문제가 수정되었습니다. null이 있는 데이터는 곡선이 이전과 달라질 수 있습니다.
기타 시리즈
- stack에서 같은 x의 기준값 아래 값 뒤에 null이 오면 모든 막대 높이가 0이 되던 문제가 수정되었습니다. null은 0으로 누적합니다.
- Bubble (opens in a new tab)의 z가 모두 0 이하이면 버블 크기와
viewRanges색이 틀리고, 모두 0이면 렌더가 중단될 수 있던 문제가 수정되었습니다. - 세로 linear 축을 쓰는 Heatmap (opens in a new tab) 셀이 그려지지 않던 문제가 수정되었습니다.
- Ohlc (opens in a new tab)에서 시가 · 고가 · 저가 · 종가가 모두 같은 봉과 단일값 data의 봉이 화면에서 사라지던 문제가 수정되었습니다.
데이터포인트 갱신 · 애니메이션
- 애니메이션을 켠 채 추가한 포인트가 그려지지 않던 문제가 수정되었습니다.
- 표시 포인트가 없을 때 포인트 제거 애니메이션에서 오류가 발생하던 문제가 수정되었습니다.
- 포인트를 지운 뒤 추가한 포인트의
index가 남은 포인트와 겹쳐 같은 색으로 표시되던 문제가 수정되었습니다. 포인트를 지운 뒤에는index가 목록 위치와 다를 수 있습니다. - 값을 갱신할 때마다 이전 값 사본이 해제되지 않아 메모리 사용량이 늘어나던 문제가 수정되었습니다.
데이터포인트 선택 · 라벨 · 툴팁
- 포인트 라벨 · 툴팁 파라미터의 점 표기에서 중간 경로가 없으면 렌더가 중단되던 문제가 수정되었습니다.
- PictorialBar를 hover할 때마다 테두리 두께가 쌓이던 문제가 수정되었습니다.
- Pie에서 hover를 끝낸 뒤 선택 조각의 쌓기 순서가 어긋나던 문제가 수정되었습니다.
split
- pane 범례에서 시리즈를 숨기면 항목이 범례에서 사라져 다시 켤 수 없던 문제가 수정되었습니다.
게이지
- 탭이 가려진 상태에서 값 애니메이션이 끝나면 라벨과 값이 중간 값으로 남던 문제가 수정되었습니다.
- linear · bullet 게이지 항목 라벨이 dark 테마에서도 검정으로 표시되던 문제가 수정되었습니다.