投稿日: | 最終更新日:
D3.jsで自由にチャートを作る
javascriptのライブラリであるD3.jsを使ってグラフを描画します。
D3.jsとは?
D3.js は「Mike Bostock 氏」によって開発が進んでいる現在主流のjsライブラリです。 SVGのようなWeb標準のリソースのみを利用することで豊富な表現が可能です。
データの可視化
データ可視化とは、
- 情報を視覚的に伝える
- 明確に情報を伝える
- 効果的に情報を伝える
です。
高度な分析処理(分散分析や重回帰分析)をしても、なかなか読み手に情報が伝わりません。レポートに数値や文字列の表をたくさん掲載するより、図形を見てもらう方が一目瞭然です。せっかくデータ分析者を雇用しているのに、アウトプットがイマイチだと台無しです。データサイエンスする場合は、ぜひ3D.jsを使ってみましょう。
D3.jsを使うメリット
R言語やPythonでもデータ可視化は可能です。しかし、JavaScriptでグラフが描画できればインタラクションなデータ可視化が期待できます。例えば、タッチパネルによる操作を受け取り、双方向にデータをやり取りすることができます。顧客の要求は様々で、要求のたびに大量の静止画を用意するのは現実的ではありません。そこで、インタラクションを備えた JavaScriptでデータビジュアライゼーションを提供できれば、こういったニーズにも応えることができます。
準備
D3.js を使うのは簡単です。
①D3.js をダウンロードします。
②zipを解凍して、「d3.min.js」を適切な場所に設置します。
- test.html
- js/
- d3.min.js
③htmlファイルから、配置した「d3.min.js」をロードします。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <!-- D3.jsの取り込み --> <script src="js/d3.min.js"></script> </script> </body> </html>
これで、D3.jsライブラリを使用することができます。
D3.jsを外部から直接読見込む場合
以下のように、外部からD3.jsを読み込む方法もあります。この場合、「d3.min.js」は不要です。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <!-- D3.jsの取り込み --> <script src="http://d3js.org/d3.v3.min.js"></script> </script> </body> </html>
※外部から読み込んだ場合、勝手に新しいバージョンに変わってしまうかもしれないため、あまりおすすめできません。
実行テスト(棒グラフを作る)
①以下のコードを記述し、「test.html」というhtml形式のファイルで保存します。
※d3のバージョンは、v3です。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <!-- D3.jsの取り込み --> <script src="./js/d3.min.js"></script> <script> //データ一覧 var dataset = [30, 25, 44, 21, 30, 50]; //描画領域作成 var svg_width = 600; var svg_height = 400; var bar_h = svg_height / dataset.length; var bar_w = svg_width / 50; var svg = d3.select("body") .append("svg") .attr("width", svg_width) .attr("height", svg_height); //グラフ描画する svg.selectAll("rect") .data(dataset) .enter() .append("rect") .attr({ x:0, y: function(d, i) { return i * bar_h; }, width: function (d) { return d * bar_w; }, height: (bar_h - 5), fill: "#6fbadd" }); </script> </body> </html>
②ブラウザで「test.html」を開きます。すると、グラフが表示されます。
- Python 114
- 制作 54
- RaspberryPi 41
- Django 40
- WordPress 40
- Linux 27
- VPS 22
- JavaScript 21
- PHP 20
- HTML・CSS 19
- AWS 16
- 仮想環境 15
- レスポンシブデザイン 13
- マイコン 11
- WEB全般 11
- 動画製作 9
- Webサービス 8
- 統合開発環境 8
- 機械学習 8
- PyCharm 7
- jQuery 7
- AfterEffects 7
- 起業・設立 7
- Django REST framework 6
- C# 6
- デザイン 6
- SEO 6
- pydata 6
- Visual Studio 5
- 数学 5
- 携帯サイト 5
- heroku 5
- Mac 5
- illustrator 5
- node.js 5
- Anaconda 5
- Nginx 4
- Jupyter Notebook 4
- インフラ 4
- Google Colaboratory 4
- symfony 4
- Webスクレイピング 3
- photoshop 3
- Go言語 3
- PC 3
- ツール 3
- Docker 3
- facebook 3
- 作業効率化 3
- データベース 3
- Cloud9 3
- コマンド 2
- micro:bit 2
- Kali Linux 2
- Webサーバー 2
- MariaDB 2
- ドローン 2
- コンテナ 2
- DaVinci Resolve 2
- ネットワーク 2
- Java 2
- movie 2
- PCDJ 2
- 音楽 2
- XSERVER 2
- Ansible 1
- Vue.js 1
- JSON 1
- Bootstrap 1
- バージョン管理システム 1
- SSL 1
- S3 1
- ムームードメイン 1
- ネットワーク 1
- アニメーション 1
- D3.js 1
- Rhino 1
- アニメ 1
- git 1
- windows 1
- アクセス解析 1
- スマートフォン 1
- アフィリエイトノウハウ 1
- 知識 1
- TypeScript 1
- 役立つ本・書籍 1
- データサイエンス 1
- ESP32 1
- AI 1
- ownCloud 1
- API 1