タグ

ブックマーク / gunmagisgeek.com (7)

  • 【D3.js】重み付けボロノイ図

    example 重み付けボロノイ図のサンプルを作った。 通常のボロノイ図は母点間に垂直二等分線を引いていく形で作られるが、重み付けボロノイ図は特定の値でもって二等分ではなく内外にラインを移動させることで調整する。 使い所が難しかったりするのだけれど、最適配置を探す場合などに使えることがある。 地図上での例 避難場所の収容人数を重さとして作成してみた。 左が通常のボロノイ図、右が重みをつけて作成したボロノイ図。 example うまくいったかは…微妙な感じ。

    【D3.js】重み付けボロノイ図
  • 4月中に発生した地震を視覚化してみた。

    Demo USGSにて公開されている過去30日分の地震データ(Past 30 Days. All Earthquakes)を視覚化しました。データ量が多かったので、マグニチュード0以下のデータは省略しています。 バーの長さがマグニチュードの大きさ、画面上位に表示されているバーが日で発生した地震、下位が日以外で発生した地震です。赤く表示されているのは熊市で発生した地震となっています。 左上のセレクタで絞り込みが行えます。あと一応パン/ズームできます。 備考 視覚化といってもデータをLine要素で並べただけです。 通勤中の時間で何か作れないかと考えて作り始めたのですが、やっぱり車中はなかなか集中できないので、わりと簡単な方法に落ち着きました。Line要素を並べるだけでも結構面白い見せ方になったかなと思います。

    4月中に発生した地震を視覚化してみた。
  • D3.jsとHummer.jsを組み合わせてスマートフォン対応を行う

    もともと、D3ではdragビヘイビア/zoomビヘイビアがスマートフォンの操作に対応していますし、touchstart、touchmove、touchendなどのDOMイベントを利用すればスマートフォンの操作に対応することはできるのですが、スワイプの判定などを独自に実装するのは結構面倒だったりします。 そこで、タッチ操作対応ライブラリとして有名なHummer.jsを利用してD3で作成したチャートをタッチ操作に対応させてみました。 サンプル Force Layoutで生成したノードにスワイプイベントのリスナーを設定しています。ノードをタッチしたりスワイプするとアラートがでます。 example スマートフォンでアクセスし、「Open in a new window.」のリンクをクリックして試してみてください。 (Chromeの開発者ツールにあるエミュレータ機能を使えばPCでもスワイプイベント

    D3.jsとHummer.jsを組み合わせてスマートフォン対応を行う
  • チャートの凡例を簡単に作成できるD3プラグイン「d3 Legend」

    凡例とは? 主題図やチャートには欠かせない凡例ですが、D3.jsではこの判例も自動的に生成はしてくれないので自分で描画する必要があります。 以外とメンドウな作業なのですが、「d3 Legend」プラグインを使うとd3.scaleの設定から凡例を簡単に生成することができます。 非常に便利なプラグインなので是非つかってみてください。 サンプル オーソドックスな縦書きの凡例を表示してみました。 var svg = d3.select('svg'); //チャートを描画する際に使用するスケール(正規化)関数 var colorScale = d3.scale.linear() .domain([0, 100]).range(["skyblue", "darkblue"]); //凡例を配置するグループ要素を追加 var legendView = svg.append("g") .attr("cla

    チャートの凡例を簡単に作成できるD3プラグイン「d3 Legend」
  • 【D3.js】 テーブルを使ったヒートマップ(Google Analytics 可視化)

    色が濃いほど訪問者数が多い時間となってます。 Google Analyticsからエクスポートしたデータ(日時、時間毎の訪問者数)を元にd3.jsを使ってテーブルを作成しました。 下記のようなカスタムレポートを作成しCSVでエクスポートしています ダウンロードしたcsvには余計なノイズが入っているので削除します。 ↓6行目まで要らない これでデータの準備が完成。 example d3.csv('ga.csv', function(csv){ //csvデータの読み込み var max = d3.max(csv, function(d){ return d.visitors }); //訪問者数の最大値取得 var colorScale = d3.scale.linear().domain([0, max]).range(["#FFF0F5", "#DC143C"]); //カラースケールを

    【D3.js】 テーブルを使ったヒートマップ(Google Analytics 可視化)
  • 【D3.js】参照元別の訪問者数をツリー マップで表示する

    流行る記事、流行らない記事[追記あり] これは身につまされます。 体感では、時間をかけたエントリーほどはてブされない気が。 ただ、ブログのジャンルにもよりますが、長い目でみるとソーシャルメディアからの流入より検索エンジンからの流入の方がブログ全体のアクセスアップには貢献してくれたりもするので、気にしすぎない方がいいかもしれません。(たまにはてブされたりすると、一時的にPVが跳ね上がるのでどうしても気になってしまいますけどね) そこで、参照元別訪問者数の比率を再確認するためにTreeMapを作ってみました。 訪問者数/新規訪問の割合(TreeMap) データセットの作成 Googleアナリティクス「トラフィック→参照元→すべてのトラフィック」のデータをCSVでエクスポートします。 エクスポートしたCSVをテキストエディタ等で整形します。 trafficSources.csv(整形済) Tre

    【D3.js】参照元別の訪問者数をツリー マップで表示する
  • 「エンジニアのための データ可視化[実践]入門 ~D3.jsによるWebの可視化」感想

    データの可視化とは、「データに含まれる事実・示唆を効率よく発見する技術」、「データから発見した事実・示唆を明確に伝える技術」ということができます。書では、データ可視化の基に始まり、何を可視化すべきで、誤った考え方は何かなどを解き明かしたあと、JavaScriptライブラリD3.jsの使い方、D3.jsによるWebの可視化のさまざまなケーススタディまで、エンジニアの方がさまざまな業務の現場で直面するであろうデータ可視化の考え方と手法をわかりやすく解説します。 @AntiBayesianさんより献をいただきました。 ありがとうございます。 オーライリーから出版されたD3と発売日が近かったこともあって、「D3」としての印象が強いようですが、書は「データ可視化」に関する入門書です。 「データの中から重要な事実・示唆を見つけ出す」「見つけた情報を正しくわかりやすく伝える」といったデータビ

    「エンジニアのための データ可視化[実践]入門 ~D3.jsによるWebの可視化」感想
  • 1