ホーム エントリーへ戻る

データ駆動型のドキュメント




D3.js は、データに基づいてドキュメントを操作するためのJavaScriptライブラリです。 D3は、HTML、SVGとCSSを使ってデータを取り込むことができます。また、「強力な視覚化コンポーネント及びDOM操作、データ駆動型のアプローチ」を組み合わせて提供します。

このスニペットをコピーすると、最新のリリースに直接リンクすることが出来ます。

<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>

#はじめに

D3 は、ドキュメントオブジェクトモデル(DOM)に任意のデータをバインドしてから、ドキュメントにデータ駆動型の変換を適用することができます。例えば、数字の配列からHTMLテーブルを生成するために、D3を使用することができます。または、スムーズなトランジションや相互作用、対話型のSVG棒グラフを作成するために、同じデータを使用しています。

#セレクション

W3CのDOM APIを使用して文書を修正することは面倒です。
段落要素のテキストの色を変更する例:

var paragraphs = document.getElementsByTagName("p");
for (var i = 0; i < paragraphs.length; i++) {
  var paragraph = paragraphs.item(i);
  paragraph.style.setProperty("color", "white", null);
}

D3は、 selections(選択肢)と呼ばれるノードの任意のセット上で動作し、宣言的なアプローチを採用しています。例えば、次のように上記のループを書き直すことができます。

d3.selectAll("p").style("color", "white");

必要に応じ、個々のノードを操作することができます。

d3.select("body").style("background-color", "black");

セレクタは、W3CのセレクタAPIによって定義され、モダンブラウザでネイティブにサポートされています。古いブラウザのための下位互換性は Sizzleによって提供されています。上記の例はそれぞれ、タグ名 ("p""body")でノードを選択しています。

#動的プロパティ

驚くほど強力な機能例

d3.geo.path機能 … SVGパスデータ地理的座標を投影

ランダムに段落を着色

d3.selectAll("p").style("color", function() {
  return "hsl(" + Math.random() * 360 + ",100%,50%)";
});

偶数と奇数のノードに対してグレーを交互に色合い

d3.selectAll("p").style("color", function(d, i) {
  return i % 2 ? "#fff" : "#eee";
});

データは、配列の値として指定され、それぞれの値は、選択関数の最初の引数( d )として渡されます。

動的にフォントサイズを計算

d3.selectAll("p")
    .data([4, 8, 15, 16, 23, 42])
    .style("font-size", function(d) { return d + "px"; });

#Enter と Exit

D3の enterexit でデータ選択すると、入力データに対して新しいノードを作成したり、不要な出力ノードを削除したりすることができます。

データ選択にバインドされると、データ配列内の各要素は、選択中の対応するノードと対になっています。データよりも少ないノードが存在する場合、余分なデータ要素は、入力した選択範囲に追加することでインスタンス化することができ、これにenterデータ選択を形成します。
1.selectAllでp要素指定
2.enter指定しているため、対応する要素が足りない場合、enter領域が自動作成される
3.appendでp要素以下を子要素として追加

d3.select("body").selectAll("p")
    .data([4, 8, 15, 16, 23, 42])
  .enter().append("p")
    .text(function(d) { return "I’m number " + d + "!"; });

対応する要素がある場合は、デフォルトでupdate処理します。対応する要素が余った場合は、exitで取得し、removeで削除します。

// Update…
var p = d3.select("body").selectAll("p")
    .data([4, 8, 15, 16, 23, 42])
    .text(String);

// Enter…
p.enter().append("p")
    .text(String);

// Exit…
p.exit().remove();

#トランジション

ページ背景を黒色フェードする例:

d3.select("body").transition()
    .style("background-color", "black");

シンボルマップの円のサイズを変更する例:

d3.selectAll("circle").transition()
    .duration(750)
    .delay(function(d, i) { return i * 10; })
    .attr("r", function(d) { return Math.sqrt(d * scale); });

Visual Index

箱ひげ図(Box Plots)
バブルチャート(Bubble charts)
弾丸チャート(Bullet Charts)
カレンダービュー(Calendar View)
非連続的な統計地図(Non-Contiguous Cartogram)

コードダイアグラム(Chord Diagram)
コードダイアグラム2(Chord Diagram)

クラスターデンドログラム(Cluster Dendrogram)
力指向グラフ(Force-Directed Graph)
折りたたみ可能な力有向グラフ(Collapsible Force Layout)
力指向米国(Force-Directed States)
・Force directed tag/site explorer … 件数が多過ぎて見にくいのでデモ未設置
サークルパッキング(Circle Packing)
人口プラミッド(Population Pyramid)
積層グループ化バー(Stacked-to-Grouped Bars)
ストリームグラフ(Streamgraph)

サンバースト パーティション(Sunburst Partition)
ズーム可能なサンバースト(Zoomable Sunburst)
・サンバーストとparse.com(Sunburst and parse.com) … デモ内容が不明なので未設置

ノードリンクツリー(Node-Link Tree)

ツリーマップ(Treemap)
ズーム可能なツリーマップ(Zoomable Treemap)

ボロノイ図(Voronoi Diagram) … モザイク細工(Tessellation)
ボロノイ図(Voronoi Diagram) … 米国の空港、2008(U.S. airports, 2008)

階層的なエッジバンドリング(Hierarchical Edge Bundling)
記号地図(Symbol Map)
平行座標(Parallel Coordinates)
散布図(Scatterplot Matrix)
ズーム可能なパックレイアウト (Zoomable Pack Layout)
階層的バー(Hierarchical Bars)
遊星ギアリング(Epicyclical Gears)
衝突検出(Collision Detection)
方位見通し(Azimuthal Projections) … 原点を回転させるようにドラッグ(d3.geo.azimuthal drag to rotate the origin)
コロプレス(Choropleth)
折りたたみ可能なツリーレイアウト(Collapsible Tree Layout)
ズーム可能なパーティションのレイアウト(Zoomable Partition Layout)
ズーム可能な面グラフ(Zoomable Area Chart)
ドラッグ·アンド·ドロップ·折りたたみツリーレイアウト(Drag and Drop Collapsible Tree Layout)
クラスタのレイアウトを回転(Rotating Cluster Layout)
サンキーダイアグラム(Sankey Diagrams)
魚眼レンズの歪み(Fisheye Distortion)
ハイブプロット(Hive Plots)
同時生起行列(Co-occurrence Matrix) … ヴィクトル·ユゴーが執筆したレ·ミゼラブルの中の文字共起を可視化したマトリックス図
モーショングラフ(Motion Chart)
アニメーションベジェ曲線(Animated Bézier Curves)
コラッツグラフ(Collatz Graph)
並列セット(Parallel Setsph) … タイタニックの生存者(Titanic Survivors)
言葉クラウド(Word Cloud)
政治的影響力(Political Influence) … 議会の影響(Congressional Influences)
連邦予算(Federal Budget)
配列にはサンバースト(Sequences sunburst)
最大ドットのコアラ(Koalas to the Max dot Com)
粒子(Particles)
折りたたみ可能なインデントツリー(Collapsible Indented Tree)
丸みを帯びた長方形(Rounded Rectangles)
オタマジャクシ(Tadpoles) … 精子(Spermatozoa)
これまで実際に制作したグラフをつなぎ合わせてまとめた作品集(Showreel)
・ユーロ債務(Euro Debt) … エラーとなるので設置していない
ラベリングされたフォースレイアウト(Labeled Force Layout)
サークルスクエアイリュージョン(Circle-Square Illusion)
ボロノイ·ベースポイントピッカー(Voronoi-based point picker)
ズーム可能な地図(Zoomable Map)
円形レイアウト(雨滴)(Circular Layout (Raindrops))
・カラーマッチングゲーム(A color matching game) … デザインは素晴らしいが汎用性はなさそうなので、デモは設置していない
・平行座標(Parallel Coordinates) … デモ構成が複雑。デモコード解説がほとんどないため、設置断念
・ハッカーニュース人気記事の傾向(Current Article Popularity Trends on Hacker News) … デモ設置失敗
・平均寿命(Life Expectancy) … コード説明がないためデモ設置していない。d3バージョンは2.1.3?
スロープグラフ(Slopegraphs)
・NCAAの予測(NCAA Predictions) … グラフの見方が不明なのでデモを設置していない
・Cubism.js … 設置しようとしたがうまくいかない。それも、どうしたら良いかさっぱり分からないレベル
・Crossfilter.js … ライブラリにデモが同梱されていないため詳細不明。設置していない
・風向きの推移(Wind History) … 公式デフォルトで風向きが全く表示されないため、デモ未設置
・LCF表記とハミルトニアングラフの構築(Building Hamiltonian Graphs from LCF Notation) … 用途が限られるためデモ未設置
力指向ボロノイ図(Voronoi Diagram with Force Directed Nodes and Delaunay Links)
・Trulia動向(Trulia Trends)2件 … 紹介記事へのリンクが張られているだけ。デモ設置方法どころかデモ本体さえどこにあるか不明(実稼動状態を確認できない)
・オープンな予算(Open Budget) … ドリルダウン形式で斬新なグラフだが、設置方法や見方等、スクリプトに関する解説がないため未設置
・Bederson出版物(Bederson Publications) … Keshif利用しているので、そちらで確認予定。ここではデモ未設置
フォースレイアウトエディタ+パン/ズーム (Force Layout Editor + Pan/Zoom)
・オープンナレッジ·フェスティバル(Open Knowledge Festival) … グラフ/コード説明がほとんどないため、理解しづらいと思い、デモ未設置。内容はオープンナレッジ祭2012における12のハッシュタグをグラフ化したもの(詳細不明)
・階層的分類ツリー(Hierarchical Classification Tree) … マウスオーバーした際のアニメーション表示内容が実用的で興味を持つ。しかし、デモが、ブログの中に組み込まれているため切り離すのが大変だと思い、設置未挑戦
・遺伝子発現(Gene Expression) … 解説されているが、難しくてデモ内容を理解できない。設置未挑戦
・時空(spacetime) … 汎用性は低いと判断したため、デモ未設置
・D3アナログ時計ダッシュボード(d3 Analog Clock Dashboard) … 世界各地の現在時刻をアナログ時計で表示。利用しないと判断したため、デモ未設置
・ネットワークブラウザのコンセプト(Concept network browser) … ドリルダウン仕様が実用的かもと思い設置に挑戦するも失敗。利用断念
・円形ヒートチャート(Circular heat chart) … 「Circular heat chart」参照
・任意のページを泡に変換する(Convert any page into bubbles) … 日本語未対応のため、未設置
有向グラフエディタ(Directed Graph Editor)
・Weeknd3 … Flashで流行った(?)マウス軌跡アニメーション。利用しないと思うのでデモ未設置
・爆発(Explosions) … 上記をさらにパワーアップさせたようなデモ。軌跡の種類等を選択可能。利用場面が思い浮かばないのでデモ未設置
・CodeFlowers … 検討した結果、デモ未設置。多分使用しないと判断したため
・アニメーションする風のチャート(Animated wind chart) … デモ未設置。使用する機会はないと判断したため
・何が私たちを幸せにする?(What makes us happy?) … 散布図。実運用例みたいなのでデモ未設置。グラフの見方も今一不明だが、リンク掲載基準はもっと不明
・シンプルSOMアニメーション(Simple SOM Animation) … 利用例が思い浮かばなかったのでデモ未設置
・芝刈り機のデモ(A mower demo) … 入力欄へ指定アルファベットを入力することにより操作。応用できるかもしれないが、デフォルトでの使用用途は思いつかないのでデモ未設置
・Map and context with brushing … 期間に応じた風の軌跡(?)を地図上に表示。利用しないと思ったのでデモ未設置
・トランジションのバイナリツリー(Binary tree with transitions) … D3を使用してツリーを実装。二分木構造なので、各ブランチをアルゴリズム的に生成。 本物の木に見えるようランダム性を組み込んでいる。外部データを使用していないので、データ視覚化ではない。使用する機会はないと判断したためデモ未設置
・d3+ColorBrewer … 色をアニメーションさせている。グラフ内容(見方)が不明。利用しないと思ったのでデモ未設置
JezzBall
テトリス(Tetris)
・ガントチャート(Gantt Chart) … ガントチャートっぽい表示も出来るみたいだけど、デフォルトで使用するレベルではないと思うのでデモ未設置
日/時ヒートマップ(Day/Hour Heatmap)
・世界の送金フロー(Worldwide remittance flows) … 凄そうだけど、解説が皆無なので理解しづらいと思いデモ未設置
・語学ネットワーク(Language Network) … 言語の類似度を視覚化? 実運用例に付き設置方法は未掲載。理解しづらいと思いデモ未設置。ちなみに、日本語と近い言語を探すもjapanese項目自体が見つからなかった。ビジュアル的には凄そうだが、デモ自体は意外と見づらいかも
・ウィンブルドン2012(Wimbledon 2012) … ウィンブルドンを年毎に、様々なグラフで視覚化している。凄そうだけど、解説が皆無なので理解しづらいと思いデモ未設置。テニスにもそれ程興味はないので
・バストランジットデータ(Bus transit data) … 選択した都市/時間帯ごとのバスルートマップを表示? 実運用例に付き設置方法は未掲載。日本語データ探すのに苦労しそうだと思ったのでデモ未設置
・Fusion Tables からの航空会社データ(Airline data from Fusion Tables) … 設置方法未掲載。グラフ自体にもそれ程魅力を感じなかったのでデモ未設置
・地図上にHexbin(六角形)を表示(Geographical hexbins) … 設置方法等、詳細不明。日本語データ探すのに苦労しそうだと思ったのでデモ未設置
・XKCDスタイルのコミック物語チャート(xkcd-style Comic Narrative Charts) … 設置方法等、英語で記載されているが、内容理解できず。注釈ツールからデータを取得し、XKCDチャートのような形式で、自動的に物語チャートを生成? 開発中の専用注釈ツール利用が前提なので、汎用性はない? デモ未設置
・GitHubのビジュアライザ(GitHub Visualizer) … 「GitHub Visualizer」参照
・世界銀行契約受注(WorldBank Contract Awards) … 「World Bank Global Development Sprint」参照
・サイトやブログのコンセプトブラウザ(Site or blog concept browser) … インパクトはあるがグラフ自体はそれ程見やすいわけではない。設置方法等、解説が皆無なので理解しづらいと思いデモ未設置
・グローバル権力構造(Global power structure) … グラフは見やすそう。面白そうだし、是非設置したいと思った。コードも公開されている。しかし、ファイル構成があまりに本格志向過ぎて設置断念。node.js / bcrypt dependencies / mongodb (run with mongod) / LiveScript
・フランスのChoroplethマップを、インタラクティブに表現(Carte de France choroplèthe interactive) … 「Carte de France choroplèthe interactive」参照
時間データをD3.jsでGoogleカレンダーのように表示(A Google calendar like display for temporal data using D3.Js)
・インタラクティブな販売データ円グラフ(Interactive Sales Data Pie Chart) … 対象データやグラフ形状を簡単に切り替え表示するデモ。Zoomdataの実運用例に付き(?)設置方法は未掲載。理解しづらいと思いデモ未設置
・Wikistalker - ウィキペディアの可視化(Wikistalker - Wikipedia Visualization) … Wikipediaに簡単にアクセスする方法を提供しているWikipedia Minerツールキットを利用している。対象データに近い内容を円状表示。日本語検索不可。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・健康と国富論(Wealth & Health of Nations) … 「D3 Cesium」参照
・Starpaths … 映画スターに関するグラフ。内容は面白そうなのだが実運用例に付き設置方法は未掲載(サーバサイドはperl使用)。理解しづらいと思いデモ未設置
・マッピングされた、ケントとサセックスの河川水位(Kent + Sussex river levels mapped) … 一見して凄そうだが、今一グラフの見方が不明。実運用例に付き(?)設置方法は未掲載。理解しづらいと思いデモ未設置
・CoreNLPセンテンスパースツリー(CoreNLP Sentence Parse Tree) … SVGでツリーマップを書き出すデモ。ソースコード見たら、JAVAと連携していたので、理解しづらいと思いデモ未設置。テンプレートファイル(?)はjsp。ログディレクトリにjavaファイルあり

雑誌出版物の年月推移(Publications in journals over time)
光遺伝学的(Publications in journals over time)
脳深部電気刺激法(Deep Brain Stimulation)
経頭蓋磁気刺激(Transcranial Magnetic Stimulation)
経頭蓋直流電気刺激(Transcranial Direct Current Stimulation)
経頭蓋交流電流刺激(Transcranial Alternating Current Stimulation)

・オープンAPIを利用した国家予算の可視化(Another state budget visualization with open api) … プルダウンで読込データを切り替え棒グラフを表示させる実用的なサンプル。コードもダウンロード可能だが、構成が本格的過ぎて既存サイトへ組み込むのに苦労しそうだと思ったのでデモ未設置。Node.jsベースのMVC(?)アプリケーション。MongoDBデータベース
・インタラクティブな聖書の矛盾&バーチャート(Interactive Bible contradictions & bar charts ) … これまで見たことがない上半円形グラフ。凄そうだけど見方が不明。サーバーサイドJavaScript環境であるNode.js、CoffeeScript利用。コード公開されているが、環境を用意するのが面倒そうなためデモ未設置
・d3.ForceBundle(Force Edge Bundling For Graphs)… コード公開されているが、グラフの見方が不明だし、データ作成するのに苦労しそうな気がするのでデモ未設置
・ゲージ(Gauge)… 多分、使わないと思うのでデモ未設置。内容は普通のゲージ。わざわざd3を使わなくても、という気がする
・弾丸チャート(Bullet Charts)… スライダーが動くでもなし、ちょっと良く分からないのでデモ未設置
・円弧軸(Arc Axis)… スピードメーター(Speedometer)。画像未使用? 再現精度は高いが、メーターが動くわけではないし、使用予定もないのでデモ未設置
・ツールチップと棒グラフ(Bar chart with tooltips) … D3-チップを使用すると、d3は棒グラフにツールチップを追加する(Using d3-tip to add tooltips to a d3 bar chart)
・東京風の地図(Tokyo Wind Map)… 東京都風速(Tokyo Wind Speed)。凄いけど、多分使わないと思うのでデモ未設置。コード公開されているが、色々読み込んでいるみたいだし、内容難しそう
・依存ホイール(Dependency Wheel)… コード公開されている。初見のインパクトはあるが、グラフ自体は見やすいわけではなさそうなので、使う機会はないと判断。デモ未設置

・フランス語ファーストネームの60年(60 years of french first names)… 名前のタグをクリックすると、件数をアニメーションでグラフ表示。複数タグをグラフ化することも可能。魅力的なのでデモ設置したかったが、ファイル構成が理解できず、断念。コード公開されているわけではない。RequireJSを使用しているが、使い方不明。piwik.dataaddict.fr/piwik.jsを読み込んでいるが、これはアクセス解析関連っぽいので多分関係ない。main.jsをどこで読み込んでいるか不明。調査した結果、RequireJSでは「script data-main="main" src="require.js">で、require.jsと同階層に配置したmain.jsを読込仕様であることが判明。このデモでは「script data-main='js/main' src='js/lib/require.js'>」と記載されているので、js直下に存在しているはず。つまり▼http://dataaddict.fr/prenoms/js/main.js。探してみたらビンゴ。ようやく本体が見つかった。しかし、色々js読み込んでいるみたいだし、理解するのに時間がかかりそうなので、今回はデモ未設置

・国家による人工股関節置換(Hip Replacement by State) … 国家による人工股関節置換の医療費(Medical Cost of Hip Replacement by State)。アメリカ全体地図に、州毎の同治療費をマッピングしている。登録すればコードとドキュメントを閲覧可能だが、特に魅力を感じないのでデモ未設置
  ・不規則な間隔で時系列を比較(Compare time series with irregular interval)… ズーム対応のx軸を共有している時系列グラフ(不規則な間隔)→ Time series chart(irregular interval) with shared x-axis and zoom
組み込み折れ線グラフを伴ったテーブル(Table with Embedded Line Chart)
デュアルスケールの棒グラフ(Dual-scale Bar Chart)
アニメーション円グラフと折れ線グラフ (Animated Pie and Line Chart)
・散布した多変量データ調査(Multivariate Data Exploration with Scatterplots) … 「Scatter-Matrix.js」参照
・メインパワー停止のライブ (Live Power Outages In Maine) … セントラル·メインパワーライブ停電地図(Central Maine Power Live Outage Map)。汎用性は低いと判断したためデモ未設置
・惑星の相対的な大きさ (Relative Size Of The Planets) … 汎用性は低いと判断したためデモ未設置
・AWS EC2の価格比較表(AWS EC2 Price Comparison Chart) … 「AWS EC2の価格比較表」参照
・ハリケーン予報パスの進化(Hurricane Forecast Path Evolution) … 何か凄そうだけど、実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・サンディの高潮(Sandy's Storm Surge) … サンディの高潮を可視化(Sandy's Storm Surge Visualized)。選択した時間ごとに、FLASHで作成したようなアニメーションで、潮の流れ(?)を表示。凄いけど、高潮を可視化することなどないので、実際に用いるには改良が必要と思われる。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
月刊NCDC気候の概要(Monthly NCDC Climate Summary) … 海外地図にマッピングしたグラフ。特に利用したいとは思わない。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・流行ゲーム(Epidemic Game) … パズルゲーム。指定回数以内でノードを分離。実ゲーム例に付き設置方法未掲載。理解しづらいと思いデモ未設置
英国の温度グラフ(UK Temperature Graphs)… 英国の温度履歴(UK Temperature Graphs)。奥行きがあるスクロール対応の2.5D折れ線グラフ。初めてみる形式だが、インパクトがある上に見やすい
ソート機能を使用したデータヒートマップ(Data Heatmap with Sorting Functions)
・政府のブランチをノードリンクツリー表示(Node-Link Tree Showing Branches of Government) … jpg画像。デモ設置不可能
・3Dフォースレイアウト(3D Force Layout) … 力関係グラフを3D回転させている。一瞬オッとは思うけど、使用例が全く思い浮かばばない。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
円弧を回転させる(Rotating Arcs)
・寿命(Lifespan) … 動物の寿命を同心円状に表示。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
ムービー·ネットワーク(The Movie Network)
・リキッドとボウル(Bowls with Liquid) … 公式ページからのリンクを辿っても動作確認をすることが出来ない。デモ未設置
・「二部の可視化 (BiPartite Visualization)」参照
・BeerViz … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
優雅なツリー予想(Graceful Tree Conjecture)
2013/14チャンピオンズリーグで得点ランキング - 内訳分析(Top Scorers in 2013/14 Champions League - Breakdown analysis)
・サンキー:ジョージア法案が法律になるとどのように(Sankey: How a Georgia bill becomes law) … サンキーダイアグラム。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・D3に基づくゲーム(A game based on d3) … 「d3game」参照
・Viroscope - ウイルス分類ビューア(Viroscope - virus taxonomy viewer) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・マレーシア航空370便消失に関するここ1週間の「Twitter」&「Redditトピック」(Twitter & Reddit topics during week one of MH-370's disappearance) … 「Hierarchie」参照
・ユーロビジョン·ソング·コンテストの投票奇妙(Eurovision song contest voting oddities) … crossfilter.js と dc.js も読み込んでいるため、理解しづらいと思いデモ未設置
・SizeViewer… 「この接続ではプライバシーが保護されません」と表示されるので、デモ未設置
・OrgoShmorgo … 化学の元素データ(?)の動的追加&削除。データを保存したらり読み込んだり出来る。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
ファンドの可視化(Fund Visualization) … GitHubでコード公開されているが、「Codeigniter 2.1.4」使用と記載されていたのでデモ未設置。今は「Codeigniter」を触りたいとは全く思わないので…。ちなみに、デモ内容も割りと普通。「Highcharts JS」の方がはるかに高機能
更新データを持つズーム可能なサンバースト(Zoomable sunburst with updating data)
米国州の地図(US State Map)
シンプルなダッシュボード(Simple Dashboard)
密度と分位グラフ(Density and Quantile Graphs)
MBTAデータの視覚化(Visualizing MBTA Data)
1からnまでの数の和(Sum of First n Numbers)
・天気図の履歴をアニメ化(Animated Historical Weather Maps)… Python利用しているみたいなのでデモ未設置
スマートフォン加速度でウォーキングを可視化する(Visualizing Walking with Smartphone Accelerometers)
サイクロイド錯視(Cycloid Optical Illusion)
代替カレンダー表示(Alternative Calendar View)
・米国コロプレス棒グラフ(US Choropleth Plus Bar Chart) … コロプレス; 統計区域別表現方法。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
アスタープロット(Aster Plot)
最小の凸多角形(Smallest Convex Polygon)
シューター(Shooter)
あなたのスキルマップのサンバースト(Sunburst for your skill map )
サッカーパスのネットワーク(Network soccer passes) … サッカーゲームにおけるパスの可視化(Visualization of passes in a soccer game)
svgのフィルタでChoropleth(Choropleth with svg filter)
・サイケデリックイギリス諸島(Psychedelic British Isles)… イギリス地図を数秒毎にサイケデリックな色調で切り替えているだけ? 使用する機会はないと思うのでデモ未設置
・D3チャートビルダー - ドラッグ&ドロップ(D3 Chart Builder - Drag and drop) … CSVファイルをドラッグ&ドロップするたけで選択したD3グラフを作成し出力までしてしまう物凄いサービス。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
インタラクティブユニットサークル(Interactive Unit Circle)
日·営業時間ヒートマップ(Days-Hours Heatmap)
トレンドチャート(エリア+ライン)(Trend Chart (Area + Line))
・株価リーダーバブルチャート(Stock Leaders Bubble Chart) … 株価をバブルで表現したグラフ。グループ分けとかすると非常に良い感じとなるが、サーバへAJAX通信しているようなので設置断念。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・アジア金融ニュースデイリー(Asian Financial News Daily) … BloombergのアジアページをスクレイピングしてJSONデータを取得し、ドリルダウン型のタグクラウドを実装している。しかし、スクレイピング方法を記述しているわけではなく、実際には自分のサーバへ加工したJSONファイルを配置し、AJAX通信で取得しているだけなので、全く汎用性がない。デモ未設置
・lede&ナットグラフレイアウトのシンプルな棒グラフ(Simple bar chart with lede & nut graf layout) … 道路に関するグラフっぽいがいまいち理解できない。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・ノードFocusableのツリー(Node Focusable Tree) … クリックでドリルダウン可能なノードツリー。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・タロットカードアプリは、D3+Meteorフレームワークで作られた(Tarot Card App made with D3 + Meteor framework) … Meteorとは、Node.jsフレームワーク。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
ウラムスパイラル(Ulam Spiral with D3)
・アニメーションコードダイアグラム(Animated Chord Diagram) … 凄そうだけど今一使用方法を理解できない。実運用例に付きデモ未設置
SOM六角ヒートマップ(SOM Hexagonal Heatmap)
DataVizのツリー(Dataviz tree)
・英国温度1910から2014(UK Temperature 1910-2014)。散布図みたいなグラフ。あまり魅力を感じない、かつ設置方法未掲載に付きデモ未設置
シンプルなバブルチャート(Simple Bubble Chart)
折りたたみ2ウェイツリーレイアウト(Collapsible 2-Way Tree Layout)
アニメーションパイ(Animated Pie)
軌道上での系外惑星(Exoplanets in Orbit)
・Worldcup'14 ドラッグ&ドロップ(Worldcup'14 Drag & Drop Brackets) … 一見して凄そうだが、何のためにドラッグ&ドロッするのか理解できない。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・バーチャートと散布(A Scatterplot as Bar chart) … 一見して凄そうだが、今一良さが不明。オランダのヒット曲トップ2000を年毎に表示? 魅力を感じなかったのと、コードで色々読み込んでそうなので理解しづらいと思いデモ未設置
ライフゲーム(Conway's Game of Life)
・編集可能なツリー混合D3&アンギュラ(Editable tree mixing d3 & Angular) … AngularJSを使用した編集可能な円系ツリーグラフ。良さ気だが、実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
SFDCのトレーニングビデオ(SFDC Training Videos)
・編集可能なサンキーダイアグラム(Editable Sankey with self-loops) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・イングランド&ウェールズの住宅価格のアニメーション(England & Wales house price animation) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
双方向ズームとドラッグD3の依存関係ツリー(Bi-directional Zoom and Drag D3 dependency tree)
・選択可能/ズーム可能/ Centerable力指向グラフ(Selectable / Zoomable / Centerable Force Directed Graph)… 特に魅力を感じなかったのでデモ未設置
・F1タイムライン(F1 Timeline) … F1ドライバーの各種年表。凄そうだけど実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・地球の中心にF1会場(Geocenter of F1 venues) … マウススクロールで年表と連動して世界地図上のF1会場を表示。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・D3で「Quandlデータベースアグリゲータ」へアクセス(Accessing the Quandl database aggregator with D3) … Quandl使用予定はないのでデモ未設置
・colorwheels上でルーマニアの宗教可視化(Religions of Romania visualized on colorwheels) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
ツールチップとサンバーストバイレベルパーティション(Sunburst bilevel partition with tooltips )
ロシア予算(1937-1950年)の歴史(The History of The Russian Budget from 1937-1950 years) … 2.5Dの時系列グラフ。久しぶりに衝撃を受ける。ここまで来ると凄過ぎて何も言えない、といった感じ
液体充填ゲージ(Liquid Fill Gauge)
インタラクティブバブルメニュー(Interactive Bubble Menu)
・高等教育のグローバルセンター:大学ランキング(Global center of higher education: university rankings) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・地理とツリーマップのリンク(Linked Geographic and Tree Maps) … 世界地図との連携なので使用することはないと思いデモ未設置
双方向階層サンキー(Bi-directional Hierarchical Sankey)
・2インタラクティブ色ホイール+ズーム可能な世界地図(2 Interactive Colorwheels + Zoomable World Map) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
ラジアルボックスプロット(Radial Boxplot)
・Pazzla:Instagramの写真のモザイク(Pazzla: Mosaics of Instagram Pictures) … 物凄く興味あるが、Instagramログインが必要。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・コミュニティポップカルチャーの参照ヒートマップ(Community Pop-Culture References Heatmap) … デモ内容自体に魅力を感じない。実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・赤ちゃんの名前人気度 bump chart(Top baby names bump chart) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・スペインでのリアルタイム電力消費(Real time electric consumption in Spain) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
ズーム可能なUnilevelパーティション(Zoomable Unilevel Partition)
・Appsスクリプトの依存関係分析(Apps Script dependency analysis) … 「GitHub API」使用が前提? 単体では動作しないようなので、デモ未設置
・編集可能なツリー(Editable Tree ) … 実運用例(API)に付き設置方法未掲載。閲覧にはログインが必要。コード内容を理解しづらいと思いデモ未設置
・国民の自動バイオグラフィー(Automated Biography of a Nation) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・スター·ウォーズキャラクタープロフィール(Star Wars Character Profiles) … ただのレーダーチャート。魅力を感じなかったのでデモ未設置
・グローバル難民フロー - 2つの動的コードダイアグラム(Global Refugee Flows - 2 Dynamic Chord Diagrams) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・オントロジーの可視化(Ontology Visualization) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・垂直サンキー(Vertical Sankey) … 解説皆無なので理解しづらいと思いデモ未設置。グラフ自体にもそれ程魅力を感じない
・遺伝的アルゴリズムの可視化(Visualizing a genetic algorithm) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・D3のビジュアライゼーションを作成します。(Create D3 Visualizations) … ドラッグドロップでグラフを作成するオンラインサービス。実運用例につき、デモ設置不可能
矩形領域チャート(Rectangular Area Chart)
確率変数のガウス曲線(Gaussian curve from random variable)
・ネットワークとしての英国経済(UK Economy as a Network) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・輪郭の比較(Contouring Comparison) … 「d3で輪郭を検出するためのライブラリ」比較検証ブログ記事へのリンク。英語なので何書いているか良く分からない。具体的なデモはpkerpedjiev/d3-contouring-example · GitHub。ダウンロードしてみたけどコード内容が難しくてとっても理解できそうにないのでデモ未設置
・検索とサブセットビューの力有向グラフ(Force Directed Graph with search and subset view) … グラフ自体にそれ程魅力を感じなかったのでデモ未設置
・円形フロー図(サンキーは、コードダイアグラムを満たしています)(A circular flow diagram (Sankey meets Chord diagram)) … グラフ自体にそれ程魅力を感じなかったのでデモ未設置
再利用可能なサンキー(Re-usable Sankey)
・滝チャートで結果を比較(Compare Results with Waterfall Charts) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・小さな複数のサークルパッキング(Small Multiple Circle Packing) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・ネストされたレイアウト(Nested Layouts) …複数のレイアウト組み合わせを紹介しているが、デモ自体にあまり魅力を感じなかった(よく分からなかった)ので未設置

Basic Charts

面グラフ(Area Chart)
折れ線グラフ(Line Chart)
二変量面グラフ(Bivariate Area Chart)
マルチシリーズ折れ線グラフ(Multi-Series Line Chart)
積み上げ面グラフ(Stacked Area Chart)
棒グラフ(Bar Chart)
積み重ね棒グラフ(Stacked Bar Chart)
正規化された積上げ棒グラフ(Normalized Stacked Bar Chart)
グループ化されたバーチャート(Grouped Bar Chart)
散布図(Scatterplot)
ドーナツグラフ(Donut Chart)
円グラフ(Pie Chart)
複数ドーナツ(Donut Multiples)
負の値の棒グラフ(Bar Chart with Negative Values)
円グラフのラベル(Pie charts labels)
時間スケールで積み上げ棒グラフ(Stacked Bar Charts on time scale)
・複数棒グラフ(Bar Chart Multiples) … コードを閲覧するには「>sign in 」が必要なのでデモ未設置
d3pie - 円グラフジェネレータとライブラリ(d3pie - pie chart generator and lib)
3Dドーナツ(3D Donut)
グラデーションパイ(Gradient Pie)
・100パーセント積み上げ棒(100% Stacked Bars) … Zoomdataでの実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・インタラクティブ散布図(Interactive Scatterplot) … Zoomdataでの実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・対話型マルチメトリックバー(Interactive Multi-Metric Bars) … Zoomdataでの実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・Mapboxタイルで米国地図(United States Map with Mapbox Tiles) … グラフが正常表示されていない。デモ未設置
滝グラフ(Waterfall Chart)
発散積上げ棒グラフ(Diverging Stacked Bar Chart)
・時系列(Timeseries) … X軸は月日。Y軸は時間。時系列の散布図のようだが、肝心のグラフ自体に魅力を感じなかったため未設置

テクニック、インタラクション&アニメーション(Techniques, Interaction & Animation)

・一般的な更新パターン(General Update Pattern) … データ更新された際、どのように反映させるか。そこまでのリアルタイム性は求めていないのでデモ未設置
ソート可能なバーチャート(Sortable Bar Chart)
バンウェイクスムーズズーム(van Wijk Smooth Zooming)
progressイベント(Progress Events)
・マージン条約(Margin Convention) … (CSSのように、上から時計回りに)4辺のプロパティで余白のオブジェクトを定義。D3で実装する必要性を把握できないのでデモ未設置
ブラッシング経由+コンテキストのフォーカス(Focus+Context via Brushing)
違いチャート(Difference Chart)
円グラフ更新(Pie Chart Update)
六角ビニング(Hexagonal Binning)
等高線プロット(Contour Plot)
あなた自身のグラフを構築(Build Your Own Graph)
・フォースレイアウトの変更(Modifying a Force Layout) … 時間経過とともに形状変化すると記載されているが、何時まで待機しても何故か変化しないのでデモ未設置
スプライン補間(Spline Interpolation) … 新しいポイントを追加します。選択したポイントを削除するにはDELETEキーを押します。補間モードを変更するには、ドロップダウンメニューを使用してください。
派遣イベント(Dispatching Events)
より良い力のレイアウト選択(Better force layout selection)
・SVGを使ってV45のWebテーマ(v45 web theme using SVG) … 実運用例に付き設置方法未掲載。理解しづらいと思いデモ未設置
・インタラクティブ力のレイアウト(Interactive force layout) … d3 process map
・EventDrops:ズーム可能な時系列(EventDrops: Zoomable time series) … デモ設置するも「Uncaught TypeError: Cannot read property 'toString' of null」となりズームしないので取り外す
・モーショントレイルとドラッグ可能な散布(Draggable scatterplot with motion trails) … dragit.js
水平にグループ化された棒グラフ(Horizontally grouped bar chart)