왜 D3인가?
- Data-Driven Documents 삼디, 디삼, 디쓰리! D3.js
- BSD License : 소스 공개 의무 없음 BSD License
- 일반적이지 않은 다양한 Chart, Data Visualization 라이브러리 D3 Gallery
- Smooth한 Transition과 Interactive 구현 D3 Gallery - Interaction
Sites.
https://d3js.org/ D3 다운로드 d3.zip
How to use.
D3 핵심
#Selections : HTML DOM element를 선택한다
#Dynamic Properties : 동적 속성값 할당
#Enter and Exit : 데이터 바인딩 된 엘리먼트를 생성하거나 제거
data binding 개념이 다르다?
위 처럼 enter() 함수로 데이터 바인드 엘리먼트를 작성하면 데이터가 바뀔 때마다 DOM에 자동으로 적용 되는 것이 아니다. 다시 그려줘야 한다.
다시 그리면서 .data로 새로운(변화된) 데이터와 기존에 바인딩된 데이터와의 비교로 추가되거나 변경되는 것만 반영한다. 이때 transition을 추가할 수 있다.
exit()는 기존의 데이터중에 삭제되는 경우 그 값을 가지고 있을 것인지 remove할 것인지를 정의할 수 있다. 이 때 transition을 추가할 수 있다.
enter() combines your data with the empty set from selectAll() and creates a set of elements that can then be accessed one by one in D3
#Transition : gradually interpolate styles
여기저기 transition()을 넣어보자
transition()의 위치에 따라 데이터가 바인딩되고, 각 요소 만큼 Iteration되는 시점을 알 수 있다.
'Development > D3js' 카테고리의 다른 글
Interactive General Update Pattern (0) | 2017.09.04 |
---|---|
D3.js에서 svg 사용하기 (0) | 2017.04.24 |
Scatter (svg) 그래프 그리기, Transition (0) | 2017.04.20 |
D3.js 바 그래프 그리기(svg), 데이터 수정 (0) | 2017.04.12 |
D3.js 바 그래프 그리기(div), 데이터 수정 (0) | 2017.04.12 |