SlideShare a Scribd company logo
1 of 34
d3.js 외부 데이터 불러오기 & 막대그래프
2015.4.4
Songyi Lim
오늘의 수업
실습이론
• D3.js의 데이터 종류
• CSV 형식
• JSON 형식
• 자바스크립트 ‘변수’ 개념
• 자바스크립트 ‘함수’ 개념
• D3.js의 데이터 매칭 원리
• 데이터 문장 만들기
• 외부 데이터 연동
• 막대그래프 그리기
• bl.ocks.org 만들기
Songyi Lim
D3.js에서 활용할 수 있는 데이터들
내부 외부
단순배열 데이터 TSV
CSV
JSON
HTML
XML
TEXT
Songyi Lim
종류 설명
TSV 데이터가 탭으로 구분된 형식. 헤더있음.
CSV 반점으로 구분한 텍스트. 헤더있음.
JSON JavaScript Object Notation’의 약자. XML과 비교해 간단하고 데이터 용량도 적음. 헤더없음.
HTML 브라우저로 표시했을 때 데이터를 보기 좋게 표시해줌. 다른 데이터와 달리 레이아웃이 있다.
XML 태그를 이용해서 데이터 표현. 범용적인 데이터 포맷. SVG도 XML의 종류 중 하나.
TEXT 순수한 문자로만 구성된 데이터 파일.
D3.js 외부 데이터 종류별 특징 요약
Songyi Lim
CSV
반점으로 구분한 텍스트
d3.csv()
D3.js 데이터 종류 - CSV
item1, item2, item3,
120, 60, 300,
60, 50, 80,
300, 30, 90,
80, 10, 150,
헤더
• 그래프 요소에 연동할 때 속성 이름으로 다뤄짐.
• CSV 형식에 헤더가 없으면 별도 처리가 필요하다
• D3.js에서는 첫 줄이 헤더라는 것을 전제
Songyi Lim
• JavaScript Object Notation. 자바스크립트 문법을 바탕으로 하는 자료형식
• TSV나 CSV와 달리 헤더는 없다.
• 여러개의 데이터는 []로 감싼다
• 데이터에 레이블을 붙일 때는 { } 사이에 ‘키 이름 : 값’의 쌍을 필요한 데이터 개수만큼 반점으로 구분.
• 계층구조를 가진 데이터에서 많이 사용.
[	
  
{“item”	
  :	
  “상품A”,	
  “sales”	
  :	
  [150,90,300]},	
  
{“item”	
  :	
  “상품B”,	
  “sales”	
  :	
  [70,920,320]},	
  
{“item”	
  :	
  “상품C”,	
  “sales”	
  :	
  [20,40,360]},	
  
{“item”	
  :	
  “상품D”,	
  “sales”	
  :	
  [50,210,200]},	
  
{“item”	
  :	
  “상품E”,	
  “sales”	
  :	
  [400,610,100]},	
  
]
d3.json()
ex)
D3.js 데이터 종류 - json
JSON
Songyi Lim
[ 실습 ] D3.js
실
 습
Songyi Lim
[ 실습 ] 실습 데이터 설명
서울시 구별 방범용 CCTV 현황
출처 : 공공데이터포털, http://goo.gl/gB9NhA
Songyi Lim
[ 실습 ] html 파일 준비하기
Songyi Lim
[ 실습 ] 자바스크립트 기본 개념 : 변수 선언하기
var	
  name	
  =	
  3	
  ;
선언 키워드
변수명
변수값
대입연산자
‘변수’
값을 저장하기 위한 공간. 각 변수는 하나의 값을 갖는다.
Songyi Lim
[ 실습 ] D3.js 데이터 파일 연동하기
파일 경로
파일을 불러올 때
오류가 날 경우
데이터가 전달된 부분
Songyi Lim
[ 실습 ] D3.js 데이터 파일 연동하기
Songyi Lim
[ 실습 ] 자바스크립트 기본 개념 : 함수
function	
  name()	
  {	
  
console.log(data);	
  
};
함수 키워드
코드
함수 이름
‘함수’
특정한 작업을 수행하기 위해 필요한 일련의 구문
Songyi Lim
[ 실습 ] SVG 그리기
바탕 설정
그래픽 요소에
데이터 연동
Songyi Lim
[ 실습 ] SVG 그리기
모든 문서 요소 선택. 하지만 아직 생성되지 않았기 때문에
빈 공간과 동일.
데이터 값을 불러옴
문서요소와 데이터 값을 연동시킴.
만약 요소가 없다면 정의되지 않은 요소를 생성함.
문서 요소의 정의를 추가함.
Songyi Lim
[ 실습 ] D3.js 데이터 매칭 원리
body 선택
svg 추가
.data( )
데이터 불러옴
빈 그래픽 요소
빈 그래픽 요소
빈 그래픽 요소
빈 그래픽 요소
빈 그래픽 요소
데이터값
데이터값
데이터값
데이터값
데이터값
요소정의
요소정의
요소정의
요소정의
요소정의
.enter( )
데이터와 문서요소연동
.append( )
문서요소 정의
Songyi Lim
[ 실습 ] D3.js - 데이터 문장 만들기
Songyi Lim
[ 실습 ] D3.js - 데이터 문장 만들기
Songyi Lim
[ 실습 ] D3.js 막대그래프 그리기 - 바탕 설정하기
Songyi Lim
[ 실습 ] D3.js 막대그래프 그리기 - 기본 설정
Songyi Lim
[ 실습 ] D3.js 막대그래프 그리기 - x좌표 설정
Songyi Lim
[ 실습 ] D3.js 막대그래프 그리기 - 높이 설정
Songyi Lim
[ 실습 ] D3.js 막대그래프 그리기 - y좌표 설정
Songyi Lim
[ 실습 ] D3.js 막대그래프 그리기 - y좌표 설정
보통 척도를 활용해
크기에 맞춰 데이터 비율을 자동 설정하지만
오늘 수업에서는
임의로 값을 나눠
비율을 맞춥니다.
Songyi Lim
[ 실습 ] D3.js 막대그래프 그리기 - 색상 바꾸기
Songyi Lim
[ 실습 ] D3.js 막대그래프 그리기 - 데이터값 붙이기
Songyi Lim
[ 실습 ] D3.js 막대그래프 그리기 - 데이터값 꾸미기
Songyi Lim
[ 실습 ] 팁 - bl.ocks.org 만들기
Songyi Lim
[ 실습 ] 팁 - bl.ocks.org 만들기
Songyi Lim
[ 실습 ] 팁 - bl.ocks.org 만들기
Songyi Lim
[ 실습 ] 팁 - bl.ocks.org 만들기
Songyi Lim
[ 실습 ] 팁 - bl.ocks.org 만들기
Songyi Lim
[ 실습 ] 팁 - bl.ocks.org 만들기
bl.ocks.org

More Related Content

What's hot

ZOZOTOWNで最大級のトラフィックを記録する福袋発売イベントで実施した負荷対策と、当日の監視体制について
ZOZOTOWNで最大級のトラフィックを記録する福袋発売イベントで実施した負荷対策と、当日の監視体制についてZOZOTOWNで最大級のトラフィックを記録する福袋発売イベントで実施した負荷対策と、当日の監視体制について
ZOZOTOWNで最大級のトラフィックを記録する福袋発売イベントで実施した負荷対策と、当日の監視体制についてMasaki Hirose
 
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio KumazawaC11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio KumazawaInsight Technology, Inc.
 
Qlik AutoMLによる機械学習モデル生成の自動化
Qlik AutoMLによる機械学習モデル生成の自動化Qlik AutoMLによる機械学習モデル生成の自動化
Qlik AutoMLによる機械学習モデル生成の自動化QlikPresalesJapan
 
SQL Server パフォーマンス問題対処 Deep Dive
SQL Server パフォーマンス問題対処 Deep DiveSQL Server パフォーマンス問題対処 Deep Dive
SQL Server パフォーマンス問題対処 Deep DiveKoichiro Sasaki
 
[B31,32]SQL Server Internal と パフォーマンスチューニング by Yukio Kumazawa
[B31,32]SQL Server Internal と パフォーマンスチューニング by Yukio Kumazawa[B31,32]SQL Server Internal と パフォーマンスチューニング by Yukio Kumazawa
[B31,32]SQL Server Internal と パフォーマンスチューニング by Yukio KumazawaInsight Technology, Inc.
 
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)Ryota Watabe
 
Bulatkan kenderaan di udara
Bulatkan kenderaan di udaraBulatkan kenderaan di udara
Bulatkan kenderaan di udarabettytsm
 
SQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターSQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターMasayuki Ozawa
 
クラスローダーについて
クラスローダーについてクラスローダーについて
クラスローダーについてSuguru ARAKAWA
 
Rac rac one_node説明資料
Rac rac one_node説明資料Rac rac one_node説明資料
Rac rac one_node説明資料Hiroki Morita
 
Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]
Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]
Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]オラクルエンジニア通信
 
Oracle Cloud Infrastructure:2021年3月度サービス・アップデート
Oracle Cloud Infrastructure:2021年3月度サービス・アップデートOracle Cloud Infrastructure:2021年3月度サービス・アップデート
Oracle Cloud Infrastructure:2021年3月度サービス・アップデートオラクルエンジニア通信
 
Latihan 6 pp 2007
Latihan 6 pp 2007Latihan 6 pp 2007
Latihan 6 pp 2007Nisrini
 
待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイントMasayuki Ozawa
 
事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)
事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)
事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)オラクルエンジニア通信
 

What's hot (20)

Proposal Tesis
Proposal TesisProposal Tesis
Proposal Tesis
 
ZOZOTOWNで最大級のトラフィックを記録する福袋発売イベントで実施した負荷対策と、当日の監視体制について
ZOZOTOWNで最大級のトラフィックを記録する福袋発売イベントで実施した負荷対策と、当日の監視体制についてZOZOTOWNで最大級のトラフィックを記録する福袋発売イベントで実施した負荷対策と、当日の監視体制について
ZOZOTOWNで最大級のトラフィックを記録する福袋発売イベントで実施した負荷対策と、当日の監視体制について
 
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio KumazawaC11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
 
SQL Server 入門
SQL Server 入門SQL Server 入門
SQL Server 入門
 
Kad nombor
Kad nomborKad nombor
Kad nombor
 
Qlik AutoMLによる機械学習モデル生成の自動化
Qlik AutoMLによる機械学習モデル生成の自動化Qlik AutoMLによる機械学習モデル生成の自動化
Qlik AutoMLによる機械学習モデル生成の自動化
 
SQL Server パフォーマンス問題対処 Deep Dive
SQL Server パフォーマンス問題対処 Deep DiveSQL Server パフォーマンス問題対処 Deep Dive
SQL Server パフォーマンス問題対処 Deep Dive
 
[B31,32]SQL Server Internal と パフォーマンスチューニング by Yukio Kumazawa
[B31,32]SQL Server Internal と パフォーマンスチューニング by Yukio Kumazawa[B31,32]SQL Server Internal と パフォーマンスチューニング by Yukio Kumazawa
[B31,32]SQL Server Internal と パフォーマンスチューニング by Yukio Kumazawa
 
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
 
Bulatkan kenderaan di udara
Bulatkan kenderaan di udaraBulatkan kenderaan di udara
Bulatkan kenderaan di udara
 
SQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターSQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンター
 
Perkataan kvkk+kv
Perkataan kvkk+kvPerkataan kvkk+kv
Perkataan kvkk+kv
 
クラスローダーについて
クラスローダーについてクラスローダーについて
クラスローダーについて
 
Rac rac one_node説明資料
Rac rac one_node説明資料Rac rac one_node説明資料
Rac rac one_node説明資料
 
Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]
Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]
Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]
 
Oracle Cloud Infrastructure:2021年3月度サービス・アップデート
Oracle Cloud Infrastructure:2021年3月度サービス・アップデートOracle Cloud Infrastructure:2021年3月度サービス・アップデート
Oracle Cloud Infrastructure:2021年3月度サービス・アップデート
 
Latihan 6 pp 2007
Latihan 6 pp 2007Latihan 6 pp 2007
Latihan 6 pp 2007
 
待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント
 
Meta de leitura
Meta de leituraMeta de leitura
Meta de leitura
 
事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)
事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)
事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)
 

Viewers also liked

꿈데디 D3.js강의 6주차
꿈데디 D3.js강의 6주차꿈데디 D3.js강의 6주차
꿈데디 D3.js강의 6주차Songyi Lim
 
[문디 10주차] d3.js 상호작용
[문디 10주차] d3.js  상호작용[문디 10주차] d3.js  상호작용
[문디 10주차] d3.js 상호작용YooDuck Hwang
 
[Week14] D3.js_Scale and Axis (보충자료)
[Week14] D3.js_Scale and Axis (보충자료)[Week14] D3.js_Scale and Axis (보충자료)
[Week14] D3.js_Scale and Axis (보충자료)neuroassociates
 
[Week14] D3.js_Scale and Axis
[Week14] D3.js_Scale and Axis[Week14] D3.js_Scale and Axis
[Week14] D3.js_Scale and Axisneuroassociates
 
[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱
[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱
[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱정석 양
 
[week16] D3.js (Scale & axis)
[week16] D3.js (Scale & axis)[week16] D3.js (Scale & axis)
[week16] D3.js (Scale & axis)neuroassociates
 
꿈꾸는 데이터 디자이너 1기를 끝내며
꿈꾸는 데이터 디자이너 1기를 끝내며꿈꾸는 데이터 디자이너 1기를 끝내며
꿈꾸는 데이터 디자이너 1기를 끝내며neuroassociates
 
Raphael.js로 SVG 차트 만들기
Raphael.js로 SVG 차트 만들기Raphael.js로 SVG 차트 만들기
Raphael.js로 SVG 차트 만들기Ohgyun Ahn
 
[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
 
[Week3] clean & correct data with OpenRefine
[Week3] clean & correct data with OpenRefine[Week3] clean & correct data with OpenRefine
[Week3] clean & correct data with OpenRefineneuroassociates
 
[week4] Cleaning data with openrefine2
[week4] Cleaning data with openrefine2[week4] Cleaning data with openrefine2
[week4] Cleaning data with openrefine2neuroassociates
 
[Week1] 데이터의 접근과 법률
[Week1] 데이터의 접근과 법률 [Week1] 데이터의 접근과 법률
[Week1] 데이터의 접근과 법률 neuroassociates
 
[week14] Getting started with D3.js
[week14] Getting started with D3.js[week14] Getting started with D3.js
[week14] Getting started with D3.jsneuroassociates
 

Viewers also liked (20)

D3.js workshop
D3.js workshopD3.js workshop
D3.js workshop
 
꿈데디 D3.js강의 6주차
꿈데디 D3.js강의 6주차꿈데디 D3.js강의 6주차
꿈데디 D3.js강의 6주차
 
[문디 10주차] d3.js 상호작용
[문디 10주차] d3.js  상호작용[문디 10주차] d3.js  상호작용
[문디 10주차] d3.js 상호작용
 
[Week14] D3.js_Scale and Axis (보충자료)
[Week14] D3.js_Scale and Axis (보충자료)[Week14] D3.js_Scale and Axis (보충자료)
[Week14] D3.js_Scale and Axis (보충자료)
 
[Week14] D3.js_Scale and Axis
[Week14] D3.js_Scale and Axis[Week14] D3.js_Scale and Axis
[Week14] D3.js_Scale and Axis
 
[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱
[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱
[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱
 
[week16] D3.js (Scale & axis)
[week16] D3.js (Scale & axis)[week16] D3.js (Scale & axis)
[week16] D3.js (Scale & axis)
 
꿈꾸는 데이터 디자이너 1기를 끝내며
꿈꾸는 데이터 디자이너 1기를 끝내며꿈꾸는 데이터 디자이너 1기를 끝내며
꿈꾸는 데이터 디자이너 1기를 끝내며
 
Raphael.js로 SVG 차트 만들기
Raphael.js로 SVG 차트 만들기Raphael.js로 SVG 차트 만들기
Raphael.js로 SVG 차트 만들기
 
[week16] D3.js_Transition
[week16] D3.js_Transition[week16] D3.js_Transition
[week16] D3.js_Transition
 
[Week12] D3.js_Basic2
[Week12] D3.js_Basic2[Week12] D3.js_Basic2
[Week12] D3.js_Basic2
 
[Week15] D3.js_Scatter_Chart
[Week15] D3.js_Scatter_Chart[Week15] D3.js_Scatter_Chart
[Week15] D3.js_Scatter_Chart
 
[Week20] D3.js_Mapping
[Week20] D3.js_Mapping[Week20] D3.js_Mapping
[Week20] D3.js_Mapping
 
[Week3] clean & correct data with OpenRefine
[Week3] clean & correct data with OpenRefine[Week3] clean & correct data with OpenRefine
[Week3] clean & correct data with OpenRefine
 
[week4] Cleaning data with openrefine2
[week4] Cleaning data with openrefine2[week4] Cleaning data with openrefine2
[week4] Cleaning data with openrefine2
 
[Week1] 데이터의 접근과 법률
[Week1] 데이터의 접근과 법률 [Week1] 데이터의 접근과 법률
[Week1] 데이터의 접근과 법률
 
[week12] D3.js_Basic
[week12] D3.js_Basic[week12] D3.js_Basic
[week12] D3.js_Basic
 
[Week10] R graphics
[Week10] R graphics[Week10] R graphics
[Week10] R graphics
 
[week14] Getting started with D3.js
[week14] Getting started with D3.js[week14] Getting started with D3.js
[week14] Getting started with D3.js
 
Drawing with data
Drawing with dataDrawing with data
Drawing with data
 

Similar to 꿈데디 D3.js강의 2주차

[Week13] D3.js_Bar Chart
[Week13] D3.js_Bar Chart[Week13] D3.js_Bar Chart
[Week13] D3.js_Bar Chartneuroassociates
 
Java script 강의자료_ed13
Java script 강의자료_ed13Java script 강의자료_ed13
Java script 강의자료_ed13hungrok
 
문돌이가 가르치는 웹 프론트엔드 1차시
문돌이가 가르치는 웹 프론트엔드 1차시문돌이가 가르치는 웹 프론트엔드 1차시
문돌이가 가르치는 웹 프론트엔드 1차시동현 조
 
[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
 
[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)
[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)
[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)Sang Don Kim
 
엔지니어 관점에서 바라본 데이터시각화
엔지니어 관점에서 바라본 데이터시각화엔지니어 관점에서 바라본 데이터시각화
엔지니어 관점에서 바라본 데이터시각화Kenneth Ceyer
 
데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지Gee Yeon Hyun
 
First Step In Ajax Korean
First Step In Ajax KoreanFirst Step In Ajax Korean
First Step In Ajax KoreanTerry Cho
 
What to Eat Today
 What to Eat Today What to Eat Today
What to Eat TodayDayeong Kang
 
웹기술 이해 (프론트엔드 기초)
웹기술 이해 (프론트엔드 기초)웹기술 이해 (프론트엔드 기초)
웹기술 이해 (프론트엔드 기초)JoonHee Lee
 
좌충우돌 ORM 개발기 2012 DAUM DEVON
좌충우돌 ORM 개발기 2012 DAUM DEVON좌충우돌 ORM 개발기 2012 DAUM DEVON
좌충우돌 ORM 개발기 2012 DAUM DEVONYounghan Kim
 
Clearboth Study 14th
Clearboth Study 14thClearboth Study 14th
Clearboth Study 14thJiho Choo
 
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [카페 어디가?팀] : 카페 및 장소 추천 서비스
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [카페 어디가?팀] : 카페 및 장소 추천 서비스제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [카페 어디가?팀] : 카페 및 장소 추천 서비스
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [카페 어디가?팀] : 카페 및 장소 추천 서비스BOAZ Bigdata
 
Trendetector : 커뮤니티 키워드 분석 서비스
Trendetector : 커뮤니티 키워드 분석 서비스Trendetector : 커뮤니티 키워드 분석 서비스
Trendetector : 커뮤니티 키워드 분석 서비스Shin Yeongmin
 
엘라스틱서치 이해하기 20160612
엘라스틱서치 이해하기 20160612엘라스틱서치 이해하기 20160612
엘라스틱서치 이해하기 20160612Yong Joon Moon
 

Similar to 꿈데디 D3.js강의 2주차 (20)

[Week13] D3.js_Bar Chart
[Week13] D3.js_Bar Chart[Week13] D3.js_Bar Chart
[Week13] D3.js_Bar Chart
 
Java script 강의자료_ed13
Java script 강의자료_ed13Java script 강의자료_ed13
Java script 강의자료_ed13
 
문돌이가 가르치는 웹 프론트엔드 1차시
문돌이가 가르치는 웹 프론트엔드 1차시문돌이가 가르치는 웹 프론트엔드 1차시
문돌이가 가르치는 웹 프론트엔드 1차시
 
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
 
[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)
[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)
[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)
 
엔지니어 관점에서 바라본 데이터시각화
엔지니어 관점에서 바라본 데이터시각화엔지니어 관점에서 바라본 데이터시각화
엔지니어 관점에서 바라본 데이터시각화
 
데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지
 
First Step In Ajax Korean
First Step In Ajax KoreanFirst Step In Ajax Korean
First Step In Ajax Korean
 
What to Eat Today
 What to Eat Today What to Eat Today
What to Eat Today
 
웹기술 이해 (프론트엔드 기초)
웹기술 이해 (프론트엔드 기초)웹기술 이해 (프론트엔드 기초)
웹기술 이해 (프론트엔드 기초)
 
좌충우돌 ORM 개발기 2012 DAUM DEVON
좌충우돌 ORM 개발기 2012 DAUM DEVON좌충우돌 ORM 개발기 2012 DAUM DEVON
좌충우돌 ORM 개발기 2012 DAUM DEVON
 
Clearboth Study 14th
Clearboth Study 14thClearboth Study 14th
Clearboth Study 14th
 
시종설 1조
시종설 1조시종설 1조
시종설 1조
 
Just java
Just javaJust java
Just java
 
Mongo db 최범균
Mongo db 최범균Mongo db 최범균
Mongo db 최범균
 
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [카페 어디가?팀] : 카페 및 장소 추천 서비스
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [카페 어디가?팀] : 카페 및 장소 추천 서비스제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [카페 어디가?팀] : 카페 및 장소 추천 서비스
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [카페 어디가?팀] : 카페 및 장소 추천 서비스
 
[week17] D3.js_Tooltip
[week17] D3.js_Tooltip[week17] D3.js_Tooltip
[week17] D3.js_Tooltip
 
R project_pt1
R project_pt1R project_pt1
R project_pt1
 
Trendetector : 커뮤니티 키워드 분석 서비스
Trendetector : 커뮤니티 키워드 분석 서비스Trendetector : 커뮤니티 키워드 분석 서비스
Trendetector : 커뮤니티 키워드 분석 서비스
 
엘라스틱서치 이해하기 20160612
엘라스틱서치 이해하기 20160612엘라스틱서치 이해하기 20160612
엘라스틱서치 이해하기 20160612
 

꿈데디 D3.js강의 2주차

  • 1. d3.js 외부 데이터 불러오기 & 막대그래프 2015.4.4
  • 2. Songyi Lim 오늘의 수업 실습이론 • D3.js의 데이터 종류 • CSV 형식 • JSON 형식 • 자바스크립트 ‘변수’ 개념 • 자바스크립트 ‘함수’ 개념 • D3.js의 데이터 매칭 원리 • 데이터 문장 만들기 • 외부 데이터 연동 • 막대그래프 그리기 • bl.ocks.org 만들기
  • 3. Songyi Lim D3.js에서 활용할 수 있는 데이터들 내부 외부 단순배열 데이터 TSV CSV JSON HTML XML TEXT
  • 4. Songyi Lim 종류 설명 TSV 데이터가 탭으로 구분된 형식. 헤더있음. CSV 반점으로 구분한 텍스트. 헤더있음. JSON JavaScript Object Notation’의 약자. XML과 비교해 간단하고 데이터 용량도 적음. 헤더없음. HTML 브라우저로 표시했을 때 데이터를 보기 좋게 표시해줌. 다른 데이터와 달리 레이아웃이 있다. XML 태그를 이용해서 데이터 표현. 범용적인 데이터 포맷. SVG도 XML의 종류 중 하나. TEXT 순수한 문자로만 구성된 데이터 파일. D3.js 외부 데이터 종류별 특징 요약
  • 5. Songyi Lim CSV 반점으로 구분한 텍스트 d3.csv() D3.js 데이터 종류 - CSV item1, item2, item3, 120, 60, 300, 60, 50, 80, 300, 30, 90, 80, 10, 150, 헤더 • 그래프 요소에 연동할 때 속성 이름으로 다뤄짐. • CSV 형식에 헤더가 없으면 별도 처리가 필요하다 • D3.js에서는 첫 줄이 헤더라는 것을 전제
  • 6. Songyi Lim • JavaScript Object Notation. 자바스크립트 문법을 바탕으로 하는 자료형식 • TSV나 CSV와 달리 헤더는 없다. • 여러개의 데이터는 []로 감싼다 • 데이터에 레이블을 붙일 때는 { } 사이에 ‘키 이름 : 값’의 쌍을 필요한 데이터 개수만큼 반점으로 구분. • 계층구조를 가진 데이터에서 많이 사용. [   {“item”  :  “상품A”,  “sales”  :  [150,90,300]},   {“item”  :  “상품B”,  “sales”  :  [70,920,320]},   {“item”  :  “상품C”,  “sales”  :  [20,40,360]},   {“item”  :  “상품D”,  “sales”  :  [50,210,200]},   {“item”  :  “상품E”,  “sales”  :  [400,610,100]},   ] d3.json() ex) D3.js 데이터 종류 - json JSON
  • 7. Songyi Lim [ 실습 ] D3.js 실
  • 9. Songyi Lim [ 실습 ] 실습 데이터 설명 서울시 구별 방범용 CCTV 현황 출처 : 공공데이터포털, http://goo.gl/gB9NhA
  • 10. Songyi Lim [ 실습 ] html 파일 준비하기
  • 11. Songyi Lim [ 실습 ] 자바스크립트 기본 개념 : 변수 선언하기 var  name  =  3  ; 선언 키워드 변수명 변수값 대입연산자 ‘변수’ 값을 저장하기 위한 공간. 각 변수는 하나의 값을 갖는다.
  • 12. Songyi Lim [ 실습 ] D3.js 데이터 파일 연동하기 파일 경로 파일을 불러올 때 오류가 날 경우 데이터가 전달된 부분
  • 13. Songyi Lim [ 실습 ] D3.js 데이터 파일 연동하기
  • 14. Songyi Lim [ 실습 ] 자바스크립트 기본 개념 : 함수 function  name()  {   console.log(data);   }; 함수 키워드 코드 함수 이름 ‘함수’ 특정한 작업을 수행하기 위해 필요한 일련의 구문
  • 15. Songyi Lim [ 실습 ] SVG 그리기 바탕 설정 그래픽 요소에 데이터 연동
  • 16. Songyi Lim [ 실습 ] SVG 그리기 모든 문서 요소 선택. 하지만 아직 생성되지 않았기 때문에 빈 공간과 동일. 데이터 값을 불러옴 문서요소와 데이터 값을 연동시킴. 만약 요소가 없다면 정의되지 않은 요소를 생성함. 문서 요소의 정의를 추가함.
  • 17. Songyi Lim [ 실습 ] D3.js 데이터 매칭 원리 body 선택 svg 추가 .data( ) 데이터 불러옴 빈 그래픽 요소 빈 그래픽 요소 빈 그래픽 요소 빈 그래픽 요소 빈 그래픽 요소 데이터값 데이터값 데이터값 데이터값 데이터값 요소정의 요소정의 요소정의 요소정의 요소정의 .enter( ) 데이터와 문서요소연동 .append( ) 문서요소 정의
  • 18. Songyi Lim [ 실습 ] D3.js - 데이터 문장 만들기
  • 19. Songyi Lim [ 실습 ] D3.js - 데이터 문장 만들기
  • 20. Songyi Lim [ 실습 ] D3.js 막대그래프 그리기 - 바탕 설정하기
  • 21. Songyi Lim [ 실습 ] D3.js 막대그래프 그리기 - 기본 설정
  • 22. Songyi Lim [ 실습 ] D3.js 막대그래프 그리기 - x좌표 설정
  • 23. Songyi Lim [ 실습 ] D3.js 막대그래프 그리기 - 높이 설정
  • 24. Songyi Lim [ 실습 ] D3.js 막대그래프 그리기 - y좌표 설정
  • 25. Songyi Lim [ 실습 ] D3.js 막대그래프 그리기 - y좌표 설정 보통 척도를 활용해 크기에 맞춰 데이터 비율을 자동 설정하지만 오늘 수업에서는 임의로 값을 나눠 비율을 맞춥니다.
  • 26. Songyi Lim [ 실습 ] D3.js 막대그래프 그리기 - 색상 바꾸기
  • 27. Songyi Lim [ 실습 ] D3.js 막대그래프 그리기 - 데이터값 붙이기
  • 28. Songyi Lim [ 실습 ] D3.js 막대그래프 그리기 - 데이터값 꾸미기
  • 29. Songyi Lim [ 실습 ] 팁 - bl.ocks.org 만들기
  • 30. Songyi Lim [ 실습 ] 팁 - bl.ocks.org 만들기
  • 31. Songyi Lim [ 실습 ] 팁 - bl.ocks.org 만들기
  • 32. Songyi Lim [ 실습 ] 팁 - bl.ocks.org 만들기
  • 33. Songyi Lim [ 실습 ] 팁 - bl.ocks.org 만들기
  • 34. Songyi Lim [ 실습 ] 팁 - bl.ocks.org 만들기 bl.ocks.org
  • 35. Songyi Lim [ 실습 ] 팁 - bl.ocks.org 만들기