SlideShare ist ein Scribd-Unternehmen logo
1 von 44
d3.js 축과 척도
2015.4.11
www.attrs.co.kr
Songyi Lim www.attrs.co.kr
오늘의 수업
실습이론
• 각종 배경지식
• HTML/CSS 지식 - 요소 방향
• HTML/CSS 지식 - 요소 경계
• D3.js 척도
• D3.js 축
• 막대그래프에 축과 척도 추가하기
Songyi Lim www.attrs.co.kr
[ 복습 ] D3.js 관련 배경지식
D3.js 관련 배경지식
Songyi Lim www.attrs.co.kr
D3.js 파일 외부/내부 기술
Songyi Lim www.attrs.co.kr
D3.js 파일 외부/내부 기술
Songyi Lim www.attrs.co.kr
index.html
index.html
서버가 기본으로 인식하는 html
여러 파일 중 ‘index.html’ 파일이 있으면 가장 먼저 인식해서 보여줌
Songyi Lim www.attrs.co.kr
D3.js 파일 경로설정
A
a
d3class.html
graph2.js
graph.js
상위폴더 하위폴더
같은폴더
Songyi Lim www.attrs.co.kr
1. 같은 폴더 내에 있을 때
2. 하위폴더에 있을 때
3. 상위폴더에 있을 때
D3.js 파일 경로설정
Songyi Lim www.attrs.co.kr
D3.js 체인문법
구두점(.)으로 d3 메서드를 체인처럼 연결해 코드 한 줄로
여러 동작을 실행하는 기법. 각각의 메서드에서 처리한 후 결과값을
다음 메서드로 전달하기 때문에 순서가 중요하다.
Chain Syntax
Songyi Lim www.attrs.co.kr
자바스크립트 기본 개념 : 함수
function(name(인자)({(
(return(반환값(
};
함수 키워드
코드
함수 이름
‘함수’
특정한 작업을 수행하기 위해 필요한 일련의 구문
return 뒤에 따라오는 값(=반환값)을 함수의 결과로 변환.
동시에 함수를 종료시킨다. 반환=종료라고 이해할 수 있다.
Songyi Lim www.attrs.co.kr
자바스크립트 기본 개념 : 함수
파일 경로
파일을 불러올 때
오류가 날 경우
데이터가 전달된 부분
Songyi Lim www.attrs.co.kr
자바스크립트 기본 개념 : 익명함수
Songyi Lim www.attrs.co.kr
자바스크립트 기본 개념 : 익명함수
function((d)({(
return(d;(
};
‘익명함수’
이름이 없는 함수
원하는 문자열을 사용 가능. 하지만 많은 코드에서 관습적으로 사용함.
Songyi Lim www.attrs.co.kr
D3.js 코드 오타
Songyi Lim www.attrs.co.kr
D3.js 코드 오타
!! 오타주의 !!
Songyi Lim www.attrs.co.kr
[ HTML/CSS ]
HTML/CSS 배경지식
Songyi Lim www.attrs.co.kr
요소 방향
Songyi Lim www.attrs.co.kr
요소 방향
1
2
3
4
HTML/CSS의 요소 나열 방향은 상우하좌!
Songyi Lim www.attrs.co.kr
Margin
Songyi Lim www.attrs.co.kr
[ d3.js 척도 ]
d3.js 척도
Songyi Lim www.attrs.co.kr
척도: 입력되는 정의역(domain)과 출력되는 치역(range)을 매핑한 함수
d3.js scale( )
.domain( )
.range( )
입력되는 데이터 값의 범위
출력되는 범위 (단위: 픽셀)
d3.scale( )
Songyi Lim www.attrs.co.kr
d3.js scale( )
d3.scale.linear( )
d3.scale.ordinal( )
선형척도. 숫자, 날짜 등 일련의 연속적인 값을 갖는 척도.
서열척도. 이름, 항목 등 측정이 불가능한 값일 경우 사용하는 척도.
Songyi Lim www.attrs.co.kr
d3.js scale( )
var scale = d3.scale.linear()
.domain([100,500])
.range([0,100]);
scale(100);
scale(300);
scale(500);
?
?
?
d3.scale.linear( )
.domain[시작점, 끝점]
.range[시작점, 끝점]
Songyi Lim www.attrs.co.kr
d3.js scale( )
var scale = d3.scale.linear()
.domain([100,500])
.range([0,100]);
scale(100);
scale(300);
scale(500);
0
50
100
Songyi Lim www.attrs.co.kr
d3.min & d3.max
d3.min( )
d3.max( )
데이터 안의 최소값을 반환하는 함수
데이터 안의 최대값을 반환하는 함수
데이터 값이 많아질수록 최소값과 최대값을 직접 지정하기 힘들기 때문에 사용하는 함수
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js
 
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 적용 전
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 적용 후
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 - data.forEach
02bar_scale.html
각 데이터(d.value)를 숫자로 강제변환.
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도
02bar_scale.html
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 - .rangeRoundBands
rangeBand rangeBand rangeBand
전체 범위
padding paddingouterPadding outerPadding
나눠진 범위
https://github.com/mbostock/d3/wiki/Ordinal-Scales
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 - axis
03bar_xaxis.html
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 - axis
03bar_xaxis.html
top
bottom
left right
translate((+(margin.left(+(,(+(margin.top(+())
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 - axis
04bar_margintest.html
margin과 transform을 설정하지 않는다면?
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 - axis
03bar_xaxis.html
축을 생성하는 함수
축을 생성할 때는 어떤 척도를 다뤄야 하는지
알려줘야 함.
축의 위치
가로축 세로축
top left
bottom right
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 - axis
03bar_xaxis.html
g 문서요소
• 그룹을 뜻함.
• 다른 문서 요소를 담는 역할.
• 트랜스폼 요소 적용 가능
call 함수
• 선택된 변수의 내용을 불러온다.
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 - axis
03bar_xaxis.html
=
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 - axis
05bar_yaxis.html
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 - axis
x축
y축
05bar_yaxis.html
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 - axis
.attr(transform,(translate(0,(+(height(+())
x축
y축
05bar_yaxis.html
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 - axis
06bar_datalabel.html
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 - axis
07bar_complete.html
고딕체
path : 축의 선 , line : 축의 눈금
Songyi Lim www.attrs.co.kr
[ 실습 ] D3.js 축과 척도 - axis
08bar_ticks.html
• 축의 눈금 개수 지정.
• 개수에 따라 눈금값이 정확히 떨어지지 않으면 입력한 눈금개수 중 값이 정확히 떨어지
는 개수로 자동으로 조정해서 보여줌.

Weitere ähnliche Inhalte

Was ist angesagt?

꿈데디 D3.js강의 6주차
꿈데디 D3.js강의 6주차꿈데디 D3.js강의 6주차
꿈데디 D3.js강의 6주차Songyi Lim
 
[week16] D3.js_Transition
[week16] D3.js_Transition[week16] D3.js_Transition
[week16] D3.js_Transitionneuroassociates
 
[Week15] D3.js_Scatter_Chart
[Week15] D3.js_Scatter_Chart[Week15] D3.js_Scatter_Chart
[Week15] D3.js_Scatter_Chartneuroassociates
 
[week11] R_ggmap, leaflet
[week11] R_ggmap, leaflet[week11] R_ggmap, leaflet
[week11] R_ggmap, leafletneuroassociates
 
[시즌2, week3] R Basic
[시즌2, week3] R Basic[시즌2, week3] R Basic
[시즌2, week3] R Basicneuroassociates
 
[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱
[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱
[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱정석 양
 
IndirectDraw with unity
IndirectDraw with unityIndirectDraw with unity
IndirectDraw with unityJung Suk Ko
 
5장 객체와클래스
5장 객체와클래스5장 객체와클래스
5장 객체와클래스SeoYeong
 
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)Sang Don Kim
 
통계자료 분석을 위한 R
통계자료 분석을 위한 R통계자료 분석을 위한 R
통계자료 분석을 위한 RYoonwhan Lee
 
이산치수학 Project5
이산치수학 Project5이산치수학 Project5
이산치수학 Project5KoChungWook
 
R 스터디 네번째
R 스터디 네번째R 스터디 네번째
R 스터디 네번째Jaeseok Park
 

Was ist angesagt? (20)

D3.js
D3.jsD3.js
D3.js
 
꿈데디 D3.js강의 6주차
꿈데디 D3.js강의 6주차꿈데디 D3.js강의 6주차
꿈데디 D3.js강의 6주차
 
[week16] D3.js_Transition
[week16] D3.js_Transition[week16] D3.js_Transition
[week16] D3.js_Transition
 
[Week15] D3.js_Scatter_Chart
[Week15] D3.js_Scatter_Chart[Week15] D3.js_Scatter_Chart
[Week15] D3.js_Scatter_Chart
 
[Week8]R_ggplot2
[Week8]R_ggplot2[Week8]R_ggplot2
[Week8]R_ggplot2
 
[week6]R_Wrangling
[week6]R_Wrangling[week6]R_Wrangling
[week6]R_Wrangling
 
[week11] R_ggmap, leaflet
[week11] R_ggmap, leaflet[week11] R_ggmap, leaflet
[week11] R_ggmap, leaflet
 
[시즌2, week3] R Basic
[시즌2, week3] R Basic[시즌2, week3] R Basic
[시즌2, week3] R Basic
 
Drawing with data
Drawing with dataDrawing with data
Drawing with data
 
R intro
R introR intro
R intro
 
[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱
[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱
[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱
 
R 기초 II
R 기초 IIR 기초 II
R 기초 II
 
R_datamining
R_dataminingR_datamining
R_datamining
 
IndirectDraw with unity
IndirectDraw with unityIndirectDraw with unity
IndirectDraw with unity
 
5장 객체와클래스
5장 객체와클래스5장 객체와클래스
5장 객체와클래스
 
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
 
통계자료 분석을 위한 R
통계자료 분석을 위한 R통계자료 분석을 위한 R
통계자료 분석을 위한 R
 
Python
PythonPython
Python
 
이산치수학 Project5
이산치수학 Project5이산치수학 Project5
이산치수학 Project5
 
R 스터디 네번째
R 스터디 네번째R 스터디 네번째
R 스터디 네번째
 

Ähnlich wie [week16] D3.js (Scale & axis)

R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1happychallenge
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지yongwoo Jeon
 
Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Kyoung Up Jung
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web ComponentsEunYoung Kim
 
알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web AnimationsChang W. Doh
 
웹표준 (XHTML + CSS)
웹표준 (XHTML + CSS)웹표준 (XHTML + CSS)
웹표준 (XHTML + CSS)ymtech
 
First Step In Ajax Korean
First Step In Ajax KoreanFirst Step In Ajax Korean
First Step In Ajax KoreanTerry Cho
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017Amazon Web Services Korea
 
업무자동화를 위한 파이썬
업무자동화를 위한 파이썬업무자동화를 위한 파이썬
업무자동화를 위한 파이썬성주 이
 
ORM을 활용할 경우의 설계, 개발 과정
ORM을 활용할 경우의 설계, 개발 과정ORM을 활용할 경우의 설계, 개발 과정
ORM을 활용할 경우의 설계, 개발 과정Javajigi Jaesung
 
[Week2] 데이터 스크래핑
[Week2] 데이터 스크래핑[Week2] 데이터 스크래핑
[Week2] 데이터 스크래핑neuroassociates
 
01. basic html5
01. basic html501. basic html5
01. basic html5동우 주
 
AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3Keeyong Han
 
StarUML NS Guide - Design
StarUML NS Guide - DesignStarUML NS Guide - Design
StarUML NS Guide - Design태욱 양
 

Ähnlich wie [week16] D3.js (Scale & axis) (20)

R project_pt1
R project_pt1R project_pt1
R project_pt1
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
 
Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web Components
 
알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations
 
웹표준 (XHTML + CSS)
웹표준 (XHTML + CSS)웹표준 (XHTML + CSS)
웹표준 (XHTML + CSS)
 
Asp.net Razor
Asp.net Razor Asp.net Razor
Asp.net Razor
 
First Step In Ajax Korean
First Step In Ajax KoreanFirst Step In Ajax Korean
First Step In Ajax Korean
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
 
Jquery핵심노토
Jquery핵심노토Jquery핵심노토
Jquery핵심노토
 
업무자동화를 위한 파이썬
업무자동화를 위한 파이썬업무자동화를 위한 파이썬
업무자동화를 위한 파이썬
 
ORM을 활용할 경우의 설계, 개발 과정
ORM을 활용할 경우의 설계, 개발 과정ORM을 활용할 경우의 설계, 개발 과정
ORM을 활용할 경우의 설계, 개발 과정
 
Mongo db 최범균
Mongo db 최범균Mongo db 최범균
Mongo db 최범균
 
Web_03_Front-end Advance
Web_03_Front-end AdvanceWeb_03_Front-end Advance
Web_03_Front-end Advance
 
[Week2] 데이터 스크래핑
[Week2] 데이터 스크래핑[Week2] 데이터 스크래핑
[Week2] 데이터 스크래핑
 
01. basic html5
01. basic html501. basic html5
01. basic html5
 
Hacosa jquery 1th
Hacosa jquery 1thHacosa jquery 1th
Hacosa jquery 1th
 
AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3
 
StarUML NS Guide - Design
StarUML NS Guide - DesignStarUML NS Guide - Design
StarUML NS Guide - Design
 

Mehr von neuroassociates

Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료neuroassociates
 
[week8] 데이터읽어주는남자
[week8] 데이터읽어주는남자[week8] 데이터읽어주는남자
[week8] 데이터읽어주는남자neuroassociates
 
[week7] 데이터읽어주는남자
[week7] 데이터읽어주는남자[week7] 데이터읽어주는남자
[week7] 데이터읽어주는남자neuroassociates
 
[week6] 데이터읽어주는남자
[week6] 데이터읽어주는남자[week6] 데이터읽어주는남자
[week6] 데이터읽어주는남자neuroassociates
 
[Week5]데이터읽어주는남자
[Week5]데이터읽어주는남자[Week5]데이터읽어주는남자
[Week5]데이터읽어주는남자neuroassociates
 
[Week4]데이터읽어주는남자
[Week4]데이터읽어주는남자[Week4]데이터읽어주는남자
[Week4]데이터읽어주는남자neuroassociates
 
[Week3]데이터읽어주는남자
[Week3]데이터읽어주는남자[Week3]데이터읽어주는남자
[Week3]데이터읽어주는남자neuroassociates
 
[Week2]데이터읽어주는남자
[Week2]데이터읽어주는남자[Week2]데이터읽어주는남자
[Week2]데이터읽어주는남자neuroassociates
 
꿈꾸는 데이터 디자이너 시즌2 교육 설명회 2부
꿈꾸는 데이터 디자이너 시즌2 교육 설명회 2부꿈꾸는 데이터 디자이너 시즌2 교육 설명회 2부
꿈꾸는 데이터 디자이너 시즌2 교육 설명회 2부neuroassociates
 
꿈꾸는 데이터 디자이너 시즌2 교육설명회
꿈꾸는 데이터 디자이너 시즌2 교육설명회꿈꾸는 데이터 디자이너 시즌2 교육설명회
꿈꾸는 데이터 디자이너 시즌2 교육설명회neuroassociates
 
꿈꾸는 데이터 디자이너 1기를 끝내며
꿈꾸는 데이터 디자이너 1기를 끝내며꿈꾸는 데이터 디자이너 1기를 끝내며
꿈꾸는 데이터 디자이너 1기를 끝내며neuroassociates
 

Mehr von neuroassociates (17)

Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료
 
[Week20] D3.js_Mapping
[Week20] D3.js_Mapping[Week20] D3.js_Mapping
[Week20] D3.js_Mapping
 
[week8] 데이터읽어주는남자
[week8] 데이터읽어주는남자[week8] 데이터읽어주는남자
[week8] 데이터읽어주는남자
 
[week7] 데이터읽어주는남자
[week7] 데이터읽어주는남자[week7] 데이터읽어주는남자
[week7] 데이터읽어주는남자
 
[week6] 데이터읽어주는남자
[week6] 데이터읽어주는남자[week6] 데이터읽어주는남자
[week6] 데이터읽어주는남자
 
[week9]R_statics
[week9]R_statics[week9]R_statics
[week9]R_statics
 
[week7]R_Wrangling(2)
[week7]R_Wrangling(2)[week7]R_Wrangling(2)
[week7]R_Wrangling(2)
 
[Week5]데이터읽어주는남자
[Week5]데이터읽어주는남자[Week5]데이터읽어주는남자
[Week5]데이터읽어주는남자
 
[Week5]R_scraping
[Week5]R_scraping[Week5]R_scraping
[Week5]R_scraping
 
[Week4]데이터읽어주는남자
[Week4]데이터읽어주는남자[Week4]데이터읽어주는남자
[Week4]데이터읽어주는남자
 
[Week4] Google refine
[Week4] Google refine[Week4] Google refine
[Week4] Google refine
 
[Week3]데이터읽어주는남자
[Week3]데이터읽어주는남자[Week3]데이터읽어주는남자
[Week3]데이터읽어주는남자
 
[Week2]데이터읽어주는남자
[Week2]데이터읽어주는남자[Week2]데이터읽어주는남자
[Week2]데이터읽어주는남자
 
꿈꾸는 데이터 디자이너 시즌2 교육 설명회 2부
꿈꾸는 데이터 디자이너 시즌2 교육 설명회 2부꿈꾸는 데이터 디자이너 시즌2 교육 설명회 2부
꿈꾸는 데이터 디자이너 시즌2 교육 설명회 2부
 
꿈꾸는 데이터 디자이너 시즌2 교육설명회
꿈꾸는 데이터 디자이너 시즌2 교육설명회꿈꾸는 데이터 디자이너 시즌2 교육설명회
꿈꾸는 데이터 디자이너 시즌2 교육설명회
 
꿈꾸는 데이터 디자이너 1기를 끝내며
꿈꾸는 데이터 디자이너 1기를 끝내며꿈꾸는 데이터 디자이너 1기를 끝내며
꿈꾸는 데이터 디자이너 1기를 끝내며
 
[Week10] R graphics
[Week10] R graphics[Week10] R graphics
[Week10] R graphics
 

[week16] D3.js (Scale & axis)