책 소개
요약
d3.js는 현재 웹에서 가장 각광받는 언어인 자바스크립트로 만들어진 오픈소스 데이터 시각화 라이브러리다. 이 책은 d3.js를 사용하기 위한 환경의 구축에서부터, 간단한 예제를 통한 d3.js의 기본 개념 해설, 화려한 데이터 시각화를 만드는 고급 기법까지 설명하고 있어, 자바스크립트를 알고 있는 모든 분을 데이터 시각화의 세계로 친절하게 안내해 줄 것이다. 데이터 시각화에 관심을 갖고 있고 자바스크립트를 조금이라도 아는 사람이라면 누구에게나 아주 좋은 길잡이가 될 책이다.
이 책에서 다루는 내용
d3.js를 혼자서 공부하다 보면, '1단계: 두 개의 동그라미 그리기', '2단계: 부엉이의 나머지 부분 그리기'처럼 중간 과정이 뭔가 빠져있다는 느낌을 받을 수도 있다. 이 책은 바로 그런 공백을 채우는 역할을 맡고자 한다.
그러기 위해 기본적인 도형에서부터 많은 기능을 포함한 시각화까지 다양한 예제를 동원할 것이다. 여기에는 마술도 없고 설명되지 않은 절차도 없다. d3.js를 써서 시각화를 만드는 데 필요한 모든 것을 이해할 수 있게 될 것이다.
또, 데이터를 다루기 쉽게 조작하는 것에서부터 좌표 계산으로부터 그리기를 분리하는 고급 기능까지 모든 부문도 살펴볼 것이다.
이 책의 대상 독자
이 책은 d3.js를 스스로 공부해보면서 몇 가지 예제를 보고 "이거 대체 어떻게 동작하는 거야?"라고 자문해 본 적이 있는 사람 모두를 대상으로 한다. 이 책은 자바스크립트 코딩 경험이 있고, 웹 개발에 대한 일반 지식을 보유하고 있으며, 프로그래밍 기초에 대한 이해와 d3.js의 예제를 본 적이 있는 사람을 독자로 가정한다.
이 책의 구성
'1장, d3.js 시작하기'는 d3.js의 기초를 보여주는 예제와 이 책의 끝까지 사용하게 될 일반적인 개발 환경 설정에 대한 내용이 들어있다.
'2장, DOM, SVG, CSS 입문'은 웹 페이지의 내용물에 대해 어떻게 d3.js를 사용해야 하는지 자세하게 설명한다. 특히, SVG와 이미지를 생성하는 핵심 도구를 집중적으로 다룬다.
'3장, 데이터'는 데이터를 함수형 프로그래밍 방식으로 다루는 법을 보여준다. 외부 소스에서 데이터를 읽어오는 방법, d3.js에 내장된 도구를 써서 지루하고 반복적인 코딩을 피하는 방법을 살펴본다.
'4장, 애니메이션'은 d3.js로 데이터 시각화에 애니메이션 효과를 적용하고 사용자가 인터렉티브하게 상호작용할 수 있는 데이터 시각화를 만드는 법을 알아본다.
'5장, 레이아웃: d3의 마술'에서는 d3.js 레이아웃의 작동 원리를 알아보고, 동일한 데이터셋으로 완전히 다른 데이터 시각화를 만들어 본다. 5장을 다 읽고 나면, 인터넷에서 볼 수 있었던 화려한 데이터 시각화가 따라할 수 없는 마술로만 보이지는 않을 것이다.
'6장, 뛰어난 데이터 시각화 디자인'은 웹에서 볼 수 있는 뛰어난 데이터 시각화의 예를 살펴보고, 어떤 요소가 그 시각화에 우월함을 불어넣었는지 설명한다.
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
목차
목차
- 1장 d3.js 시작하기
- d3.js란?
- 개발 환경 구축
- 크롬 개발자 도구
- 간단한 막대그래프
- 2장 DOM, SVG, CSS 입문
- DOM
- d3.js로 DOM 다루기
- 셀렉션
- 셀렉션 예제
- 문서 내용 조작하기
- 데이터와 셀렉션의 연결
- HTML 시각화 예제
- SVG
- SVG로 그리기
- 문서 요소와 도형을 수작업으로 추가하기
- 변환
- 경로 사용하기
- CSS
- 색
- 요약
- 3장 데이터
- 함수형 스타일로 데이터를 생각해보기
- 자바스크립트 내장 배열 함수
- d3.js의 데이터 함수
- 데이터
- 핵심
- 편의 함수
- 축척
- 순서 축척
- 수량 축척
- 치역이 연속적인 축척
- 치역이 비연속적인 축척
- 시간
- 날짜/시간 형식
- 시간 연산
- 지리
- 지오데이터
- 지도 그리기
- 지도 기반 시각화
- 요약
- 4장 애니메이션
- 트랜지션을 통한 애니메이션
- 보간자
- 가•감속(Easing)
- 타이머(Timer)
- 사용자와의 상호작용
- 기초 상호작용
- 동작(Behavior)
- 드래그(Drag)
- 줌(Zoom)
- 브러쉬(Brushes)
- 요약
- 5장 레이아웃 - d3의 마술
- 레이아웃은 무엇이고 왜 중요한가
- 내장 레이아웃
- 데이터셋
- 히스토그램 레이아웃
- 파이 레이아웃
- 스택 레이아웃
- 코드(Chord) 레이아웃
- 포스(Force) 레이아웃
- 서열식 레이아웃
- 트리 레이아웃
- 클러스터 레이아웃
- 분할 레이아웃
- 패킹 레이아웃
- 트리맵 레이아웃
- 요약
- 6장 뛰어난 데이터 시각화 디자인
- 시각화란 무엇인가?
- 훌륭한 예제들
- 시위와 체포
- 레미제라블
- 부와 건강의 상관관계
- 더 많은 사례들
- 요약