javascriptの 可能性 - j-school.acvol2][r_saito]aboutd3.js.pdf ·...

22
JavaScript可能性 JavaScriptライブラリ D3.js」について

Upload: others

Post on 09-Sep-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

JavaScriptの可能性

JavaScriptライブラリ「D3.js」について

Page 2: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

・自己紹介

・発表の目的と経緯

・D3.jsとは

・Gallery

・参考文献また参考サイト

・まとめ

もくじ

2

Page 3: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

発表の目的と経緯

【目的】

・画面上で動くJavaScriptの1つの方法として紹介をしたいと思います。

こんなものもあるんだと知って頂けたらと思います。

3

Page 4: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

【経緯】

現場で「AngularJS」というJavaScriptフレームワークを使用しています。「AngularJS」の「angular-dc」(angular-dcはディレクティブ)で使えるグラフ描画ライブラリに、「dc.js」というものがあり、それが「d3.js」のラッパーライブラリで、細かいオプションを指定する際に「d3.js」の記述方法の知識が必要になったのがきっかけです。

発表の目的と経緯

4

Page 5: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

発表の目的と経緯

JavaScript

AngularJS(フレームワーク) dc.js(ライブラリ)

angular-dc

(ディレクティブ)

D3.js(ライブラリ)

5

Page 6: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

6

D3.jsとは

Page 7: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

D3.jsとは

正式にはデータ・ドリブン・ドキュメントと言い、その頭文字をとってD3と呼ばれているものです。

D3: Data Driven Document

データに基づいてドキュメントを操作するための JavaScript

ライブラリでHTMLやSVG、CSSを使ってグラフを描画します。

7

Page 8: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

・jQueryと書き方が似ている。

・他のChartライブラリより柔軟性が高い。

・JSON、GeoJSON、XML、CSV、TSV(タブ区切りテキス

ト)、JavaScriptの配列などの様々な形式のデータに対応。

D3.jsとは

8

Page 9: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

・jQueryと書き方が似ている。

・他のChartライブラリより柔軟性が高い。

・JSON、GeoJSON、XML、CSV、TSV(タブ区切りテキス

ト)、JavaScriptの配列などの様々な形式のデータに対応。

D3.jsとは

9

Page 10: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

なぜ他のChartライブラリより柔軟性が高い?

そもそもD3.jsはChartライブラリではありません。

一般的なChartライブラリと呼ばれるものはデータを用意し、

グラフの種類や色をオプションで指定すれば描画してくれま

す。

(テンプレートが用意されているということ。)

10

Page 11: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

なぜ他のChartライブラリより柔軟性が高い?

D3.jsにはテンプレートのようなものがないので、

自分で全て指定する必要があります。

つまり他のChartライブラリにはできない自由度の高いカス

タマイズが可能になります。

11

Page 12: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

Gallery

・Gallery

https://github.com/mbostock/d3/wiki/Gallery

・実際に使えそうな例

http://d3pie.org/website/examples/refresh.html

http://bl.ocks.org/mbostock/3750941

http://www.findtheconversation.com/concept-map/

http://ggruiz.me/explosions/ 12

Page 13: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

・出来すぎていて気持ち悪いやつ

http://mbostock.github.io/d3/talk/20111116/force-

collapsible.html

http://christophermanning.org/gists/1734663/

http://bl.ocks.org/nswamy14/df13d67b6efeb19eb640

http://bl.ocks.org/peterlozano/480f90947c6e08be6b95

Gallery

13

Page 14: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

・さらに出来すぎていて気持ち悪いやつ

http://d3shooter.herokuapp.com/

http://bl.ocks.org/mbostock/1123639

http://earth.nullschool.net/jp/#current/ocean/primary/waves/ov

erlay=significant_wave_height/orthographic

http://nbremer.github.io/exoplanets/

http://d3.artzub.com/wbca/

Gallery

14

Page 15: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

◼参考文献

●インタラクティブ・データビジュアライゼーション

D3.jsによるデータの可視化

著 Scott Murray(スコット・マレイ)

*参考文献また参考サイト*

15

Page 16: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

◼参考文献

データビジュアライゼーションのための

D3.js徹底入門

著 古籏 一浩(ふるはた かずひろ)

*参考文献また参考サイト*

16

Page 17: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

◼参考サイト

●公式ドキュメントhttps://d3js.org/

●Galleryhttps://github.com/mbostock/d3/wiki/Gallery

●日本語ドキュメントhttp://ja.d3js.node.ws/

*参考文献また参考サイト*

17

Page 18: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

◼参考サイト

●GUNMA GEEKhttp://shimz.me/blog/d3-js/2977

●D3.jsにあてはまらないことhttp://postd.cc/what-d3js-

is-not/

●D3.jsの使い方とグラフを作成するサンプル

http://www.tam-

tam.co.jp/tipsnote/javascript/post4913.html

*参考文献また参考サイト*

18

Page 19: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

前述した通り、D3.jsは柔軟性が高いため、学習コストがものすごく高いです。

しかし、Chartライブラリに比べるとできることの幅が広がります。

どういうグラフを描きたいかによってChartライブラリを使うか、D3.jsを使うか選択するといいと思います。

まとめ

19

Page 20: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

D3.jsの公式ドキュメントには、サンプルが豊富にあるので、眺めているだけでも楽しいです。

またJavaScriptでここまでできてしまうのかと個人的に感動してしまいました。

まとめ

20

Page 21: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

私の好きな名言にこんなものがあります。

『人が空想できる全ての出来事は起こりうる現実である』

D3.jsもやりたいことを可能にする素敵なツールだと思うので、少しづつ学習したいと思います。

まとめ

21

Page 22: JavaScriptの 可能性 - j-school.acvol2][R_Saito]AboutD3.js.pdf · なぜ他のChartライブラリより柔軟性が高い? そもそもD3.jsはChartライブラリではありません。

Imagination means nothing without doing.

おわり

22