SlideShare a Scribd company logo
1 of 43
Download to read offline
D3.js講習会
∼2回目∼
Githubから
D3js_lecture
をダウンロードしてね
使用環境は
Google Chrome
Sublime Text 2
本日の内容
Today s Goal
update, enter, exit について理解し
活用できるようになること
Review
• データバインディングについて学習
• D3.jsを使って棒グラフを作成
Review
• D3js_lecture/02/step01.html を開いてください
Review
• D3js_lecture/02/step01.html を開いてください
Review
dataset を
バインディング
要素を追加するappendメソッド
Question
存在しないものを
なぜ選択できる?
これに,どんな意味があるのか?
selectAll メソッド
• 引数で指定した要素を全て選択するメソッド
htmlファイル 
rect
rect
rect
selectAll( rect )
selectAll メソッド
• 引数で指定した要素を全て選択するメソッド
htmlファイル 
rect
rect
rect
rectは3つあります
selectAll メソッド
htmlファイル 
selectAll( rect )
rectがなければ…?
• 引数で指定した要素を全て選択するメソッド
selectAll メソッド
• 引数で指定した要素を全て選択するメソッド
htmlファイル 
rectは0つあります
data メソッド
• データを選択した要素にバインディング
htmlファイル 
data(dataset)
データを3個

バインディングすると仮定
data メソッド
• データを選択した要素にバインディング
htmlファイル 
バインディングする
要素がないです
データを3個

バインディングすると仮定
enter メソッド
• データに対して要素が不足している場合,

不足した分に対して処理を適応できるメソッド(ポイント)
htmlファイル 
enter()
enter メソッド
htmlファイル 
3つ分不足しています
• データに対して要素が不足している場合,

不足した分に対して処理を適応できるメソッド(ポイント)
append メソッド
• 引数で指定した要素を追加するメソッド
htmlファイル 
append( rect )
append メソッド
• 引数で指定した要素を追加するメソッド
append( rect )
htmlファイル 
rect
rect
rect
無事rectを追加できた!
いや,でも
update, exit ?
exit メソッド
htmlファイル 
• データに対して対応する要素が余っている場合,

余った分に処理を適応できるメソッド(ポイント)
exit()
データを3個

バインディングすると仮定
rect
rect
rect
rect
rect
exit メソッド
htmlファイル データを3個

バインディングすると仮定
rect
rect
rect
rect
rect
2つ余っています
• データに対して対応する要素が余っている場合,

余った分に処理を適応できるメソッド(ポイント)
remove メソッド
htmlファイル 
rect
rect
rect
rect
rect
• 要素を削除するメソッド
remove()
remove メソッド
htmlファイル 
rect
rect
rect
• 要素を削除するメソッド
2つ削除しました
update
htmlファイル 
rect
rect
rect
• データに対して対応する要素がある場合,

その要素に対して処理を適応できる(ポイント)
※メソッドではない
attr( fill , green )
update
htmlファイル 
rect
rect
rect
• データに対して対応する要素がある場合,

その要素に対して処理を適応できる(ポイント)
※メソッドではない
緑色にしました
一旦まとめ
• update
• 対応する要素に処理を適応できる
• enter
• 不足した分に処理を適応できる
• exit
• 余った分に処理を適応できる
データを増減させよう
実際にやってみよう!
• D3js_lecture/02/step02.html を開いてください
実際にやってみよう!
1. テキストボックスに「10」と入力してください
2. グラフが表示されたことを確認してください
3. テキストボックスの数字を変更してみましょう
データバインディング
• rectを全て選択し,datasetをバインディング
update
• 対応する要素がある場合は,再描画する
enter
• 要素が不足している場合,新たに追加して描画する
exit
• 要素が余っている場合,それを削除する
今日のポイント
update, enter, exit
次週は
軸の作成
について学びます
参考資料
!
• ドットインストール:D3.js入門
• http://dotinstall.com/lessons/basic_d3js
• d3.js - 三つの小円
• http://ja.d3js.node.ws/document/tutorial/circle.html
• 【D3.js】超基本! コンソールでselect,data,enter
メソッドを理解する。
• http://shimz.me/blog/d3-js/2619
• Scott Murray, 長尾高弘(訳): インタラクティブ・

データビジュアライゼーション, オライリー・ジャッパン

More Related Content

What's hot (6)

Web で変わったクラウドと postgre sql の今と昔
Web で変わったクラウドと postgre sql の今と昔Web で変わったクラウドと postgre sql の今と昔
Web で変わったクラウドと postgre sql の今と昔
 
今すぐ使えるクラウドとPostgreSQL
今すぐ使えるクラウドとPostgreSQL今すぐ使えるクラウドとPostgreSQL
今すぐ使えるクラウドとPostgreSQL
 
Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由
 
実務で役立つデータベースの活用法
実務で役立つデータベースの活用法実務で役立つデータベースの活用法
実務で役立つデータベースの活用法
 
MongoDB: システム可用性を拡張するインデクス戦略
MongoDB: システム可用性を拡張するインデクス戦略MongoDB: システム可用性を拡張するインデクス戦略
MongoDB: システム可用性を拡張するインデクス戦略
 
データベース・リファクタリング読書会第四回オープニング
データベース・リファクタリング読書会第四回オープニングデータベース・リファクタリング読書会第四回オープニング
データベース・リファクタリング読書会第四回オープニング
 

Similar to D3.js講習会〜2回目〜

言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析
pocketberserker
 
Learning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.GeomtryLearning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.Geomtry
Akira Takahashi
 
わんくまT78 mfcを始めようとしてみた
わんくまT78 mfcを始めようとしてみたわんくまT78 mfcを始めようとしてみた
わんくまT78 mfcを始めようとしてみた
伸男 伊藤
 
TDDをやってみた
TDDをやってみたTDDをやってみた
TDDをやってみた
Yuta Kawadai
 
NetBeans plugin for wordpress
NetBeans plugin for wordpressNetBeans plugin for wordpress
NetBeans plugin for wordpress
Junichi Yamamoto
 

Similar to D3.js講習会〜2回目〜 (20)

言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析
 
使い捨て python コードの書き方
使い捨て python コードの書き方使い捨て python コードの書き方
使い捨て python コードの書き方
 
[DLHacks LT] PytorchのDataLoader -torchtextのソースコードを読んでみた-
[DLHacks LT] PytorchのDataLoader -torchtextのソースコードを読んでみた-[DLHacks LT] PytorchのDataLoader -torchtextのソースコードを読んでみた-
[DLHacks LT] PytorchのDataLoader -torchtextのソースコードを読んでみた-
 
分析チームのチーム開発 Mod
分析チームのチーム開発 Mod分析チームのチーム開発 Mod
分析チームのチーム開発 Mod
 
Learning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.GeomtryLearning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.Geomtry
 
研究を基にしたオープンソース開発チェックポイント
研究を基にしたオープンソース開発チェックポイント研究を基にしたオープンソース開発チェックポイント
研究を基にしたオープンソース開発チェックポイント
 
物体検出コンペティションOpen Imagesに挑む
物体検出コンペティションOpen Imagesに挑む物体検出コンペティションOpen Imagesに挑む
物体検出コンペティションOpen Imagesに挑む
 
わんくまT78 mfcを始めようとしてみた
わんくまT78 mfcを始めようとしてみたわんくまT78 mfcを始めようとしてみた
わんくまT78 mfcを始めようとしてみた
 
MLOps Course Slides_JP(配布用).pdf
MLOps Course Slides_JP(配布用).pdfMLOps Course Slides_JP(配布用).pdf
MLOps Course Slides_JP(配布用).pdf
 
Spring と TDD
Spring と TDDSpring と TDD
Spring と TDD
 
TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前に
 
TDDをやってみた
TDDをやってみたTDDをやってみた
TDDをやってみた
 
NetBeans plugin for wordpress
NetBeans plugin for wordpressNetBeans plugin for wordpress
NetBeans plugin for wordpress
 
Github基礎 | [FLEXER Project]
Github基礎 | [FLEXER Project]Github基礎 | [FLEXER Project]
Github基礎 | [FLEXER Project]
 
How to improve performance
How to improve performanceHow to improve performance
How to improve performance
 
Step by Stepで学ぶ自然言語処理における深層学習の勘所
Step by Stepで学ぶ自然言語処理における深層学習の勘所Step by Stepで学ぶ自然言語処理における深層学習の勘所
Step by Stepで学ぶ自然言語処理における深層学習の勘所
 
Collecting corpus
Collecting corpusCollecting corpus
Collecting corpus
 
CAジャーナルクラブ Dremel: Interactive Analysis of Web-Scale Datasets
CAジャーナルクラブ Dremel: Interactive Analysis of Web-Scale DatasetsCAジャーナルクラブ Dremel: Interactive Analysis of Web-Scale Datasets
CAジャーナルクラブ Dremel: Interactive Analysis of Web-Scale Datasets
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
 
ITpro expo2014_atlassian
ITpro expo2014_atlassianITpro expo2014_atlassian
ITpro expo2014_atlassian
 

D3.js講習会〜2回目〜