SVG 차트 구현
차트 라이브러리 없이 SVG만으로 간단한 차트를 그릴 수 있다. 라이브러리 의존성을 줄이고 디자인을 정교하게 제어해야 할 때 유용한 접근법이다.
라인 차트는 `
파이 차트는 `
iOS에서는 `position` 및 회전 애니메이션 관련 버그가 자주 발생하는데, 배경용 circle을 하나 더 겹쳐놓고 이를 제거하는 방식(배경을 지워 진행도가 드러나게 하는 트릭)으로 회피할 수 있다.
핵심 내용
- 라인 차트: `
` + `points` 속성으로 좌표 나열 - 파이 차트: `
` + `stroke-dasharray`와 `stroke-dashoffset`로 비율 표현 - 전체 원 둘레 공식: 2πr, 차트 값 = 전체 둘레 − (전체 둘레 × 비율)
- 다중 값 파이: `rotate`로 각 circle 시작 각도 이동
- 시계 방향 표현: CSS `transform: scaleX(-1)`
- iOS 애니메이션 버그 회피: 배경 circle을 덮었다가 제거하는 트릭
관련 개념
- CSS 로딩 애니메이션 — SVG와 CSS 조합으로 구현하는 또 다른 피드백 요소
- 텍스트 임베딩과 데이터 시각화 — 데이터 시각화의 상위 관점
출처
- svg로 간단한 차트 구현하기 — Seulbi Lee, UX Engineer 이야기