SlideShare a Scribd company logo
1 of 99
Download to read offline
データ可視化
について
2014/04/18 HTML5とか勉強会
@muddydixon
! muddydixon
" muddy.dixon
# muddydixon
!
Node.js
Perl
Visualization
TimeSeries
NeuralNetwork
私 is
アジェンダ
データ可視化の目的
データ可視化とは
データ可視化の理屈
Webでのデータ可視化のいいところ
D3.jsとは
可視化の目的
データ可視化とは
The main goal of data visualization is its ability
to visualize data, communicating information
clearly and effectivelty.
Vitaly Friedman
$
データ可視化の目的は、データを可視化し、
情報を明確かつ効率的に伝えることである
$
可視化の目的
伝えてどうする?
可視化の目的
☓ 可視化のための可視化
⃝ 目的達成のための可視化
可視化の目的
☓「どう可視化するか?」
⃝「何を可視化するか?」
◎「なんのために可視化するか?」
可視化の目的
メトリクスの監視
例) モニタリングツール
トレンドの把握
例) 株式チャート
関係性の把握
例) ソーシャルグラフ
属性の分析
例) 顧客属性の割合や売れ筋ジャンルの割合
可視化の目的
事実を発掘できてこその可視化
事実を活用できてこその可視化
!
改善行為の促進のための可視化
(ビジネス、政治、家計など)
目的を阻害する可視化
ダメな可視化
効率的じゃない
明確じゃない
!
※ 「ウソを付く」「サンプルに問題がある」
とかはちょっとおいておきます
明確じゃない
明確じゃない
明確じゃない
明確じゃない
明確じゃない
明確じゃない
効率的じゃない
いろいろ
もっと欲しい人はこちらに
http://wtfviz.net/
データ可視化とは
データ可視化とは
The main goal of data visualization is its ability
to visualize data, communicating information
clearly and effectivelty.
Vitaly Friedman
!
データ可視化の目的は、データを可視化し、
情報を明確かつ効率的に伝えることである
!
つまり
" 情報を伝えそびれている可視化
" 明確ではない可視化
" 効率的ではない可視化
!
上記は「可視化」ではありません
可視化の定義に則ると
情報が視覚的な表現に置き換えられている
情報が明確に伝えられている
情報が効率的に伝えられている
#
$ % &
なぜ可視化するとよいか
53,434 28,397 41,334
なぜ可視化するとよいか
53,434 28,397 41,334
なぜ可視化するとよいか
53,434 28,397 41,334
(231.16) (168.51) (203.31)
なぜ可視化するとよいか
53,434 28,397 41,334
なぜ可視化するとよいか
53,434 28,397 41,334
49,346 93,853 23,579
80,132 86,103 35,203
なぜ可視化するとよいか
(53,434)(28,397)(41,334)
(49,346)(93,853)(23,579)
(80,132)(86,103)(35,203)
なぜ可視化するとよいか
値の大小   ▶ 高さの大小
値の大小   ▶ 面積の大小
上昇傾向   ▶ 右上がりの傾き
下降傾向   ▶ 右下がりの傾き
同じカテゴリ ▶ 同じ色
関係性 ▶ 密集度
なぜ可視化するとよいか
経験的・認知的な
既存知識を効率的に
利用した理解の促進
#
$ % &
なぜ可視化するとよいか
すぐ分かる is 正義
#
$ % &
認知機能・経験をフルに使う
# Sepal.Lengt Sepal.Widt Petal.Lengt Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
51 7.0 3.2 4.7 1.4 versicolor
52 6.4 3.2 4.5 1.5 versicolor
53 6.9 3.1 4.9 1.5 versicolor
54 5.5 2.3 4.0 1.3 versicolor
55 6.5 2.8 4.6 1.5 versicolor
101 6.3 3.3 6.0 2.5 virginica
102 5.8 2.7 5.1 1.9 virginica
103 7.1 3.0 5.9 2.1 virginica
104 6.3 2.9 5.6 1.8 virginica
105 6.5 3.0 5.8 2.2 virginica
みんなだいすきiris
ここからなにか
わかるわけでは
ないですよね?
統計量で表現
Sepal
Length
Sepal
Width
Petal
Length
Petal
Width
Min 4.3 2.0 1.0 0.1
1st
Qu.
5.1 2.8 1.6 0.3
Median 5.8 3.0 4.35 1.3
Mean 5.843 3.057 3.758 1.199
3rd
Qu.
6.4 3.3 5.1 1.8
Max 7.9 4.4 6.9 2.5
これなら
なんとか
図形の経験・認知能力を利用
図形の経験・認知能力を利用
• 分布の幅が広い
• 中央値が上に偏っている
• 大きく2つの峰がある
• 中央値が若干、上
に偏り
• 峰が2つ・・・?
• 均等に分布
• 中央値がおおよ
そ中心
• 他の属性と比較して分布
の幅が小さい
• 外れ値がちらほら
「認知」が「把握」を加速
Sepal
Length
Sepal
Width
Petal
Length
Petal
Width
Min 4.3 2.0 1.0 0.1
1st
Qu.
5.1 2.8 1.6 0.3
Median 5.8 3.0 4.35 1.3
Mean 5.843 3.057 3.758 1.199
3rd
Qu.
6.4 3.3 5.1 1.8
Max 7.9 4.4 6.9 2.5
その他にも
箱ひげ図の代わりに
ヒストグラム
ヒストグラムを種別毎に
表現
可視化の理論
データセットと可視化
# ガク片幅 花弁幅 Species
1 3.5 0.2 setosa
2 3.0 0.2 setosa
3 3.2 0.2 setosa
4 3.1 0.2 setosa
5 3.6 0.2 setosa
51 3.2 1.4 versicolor
52 3.2 1.5 versicolor
53 3.1 1.5 versicolor
54 2.3 1.3 versicolor
55 2.8 1.5 versicolor
101 3.3 2.5 virginica
102 2.7 1.9 virginica
103 3.0 2.1 virginica
104 2.9 1.8 virginica
105 3.0 2.2 virginica
可視化で意識する概念
データ
データ変数 視覚変数
視覚記号
可視化データセット
様々なフィールドの値からなる
レコードを複数含むデータ群
変数抽出・代数処理・
尺度化処・理統計処理が済んだもの
可視化対象とするフィールドを
含むデータ。ひとつひとつが意味を
持った単位(例:SQLの行)
フィールドの値そのもの
数値(メジャー)やカテゴリ変数(ディ
メンジョン)。ひとつひとつが視覚変
数に置換される
視覚表現ひとつひとつを指す
位置やサイズ、色、傾き、強度(透明
度・彩度・明度)、テクスチャなど
視覚変数を集約させた記号
点や円、矩形、弧、立体など
データセットのデータに対応する
記号の集合による可視化
対応
対応
対応
データセットと可視化
# ガク片幅 花弁幅 Species
1 3.5 0.2 setosa
2 3.0 0.2 setosa
3 3.2 0.2 setosa
4 3.1 0.2 setosa
5 3.6 0.2 setosa
51 3.2 1.4 versicolor
52 3.2 1.5 versicolor
53 3.1 1.5 versicolor
54 2.3 1.3 versicolor
55 2.8 1.5 versicolor
101 3.3 2.5 virginica
102 2.7 1.9 virginica
103 3.0 2.1 virginica
104 2.9 1.8 virginica
105 3.0 2.2 virginica
データ
視覚記号
データセットと可視化
# ガク片幅 花弁幅 Species
1 3.5 0.2 setosa
2 3.0 0.2 setosa
3 3.2 0.2 setosa
4 3.1 0.2 setosa
5 3.6 0.2 setosa
51 3.2 1.4 versicolor
52 3.2 1.5 versicolor
53 3.1 1.5 versicolor
54 2.3 1.3 versicolor
55 2.8 1.5 versicolor
101 3.3 2.5 virginica
102 2.7 1.9 virginica
103 3.0 2.1 virginica
104 2.9 1.8 virginica
105 3.0 2.2 virginica
データ変数
Y
視覚変数
X
色
可視化の概念(理屈上)
# Sepal.Lengt
h
Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
51 7.0 3.2 4.7 1.4 versicolor
52 6.4 3.2 4.5 1.5 versicolor
53 6.9 3.1 4.9 1.5 versicolor
萼片長 花弁長 種別
5.1 1.4 setosa
萼片長 5.1 比例尺度
花弁長 1.4 比例尺度
種別 setosa 名義尺度
萼片長 比例尺度 位置1
花弁長 比例尺度 位置2
種別 名義尺度 色
Sepal.Length Petal.Length Species
5.1 1.4 setosa
4.9 1.4 setosa
4.7 1.3 setosa
4.6 1.5 setosa
5.0 1.4 setosa
7.0 4.7 versicolor
6.4 4.5 versicolor
6.9 4.9 versicolor
萼片長 花弁長 種別
100 27 赤
データセット
データセット
(変数抽出)
データ
データ変数 視覚変数
視覚記号
可視化
対応
対応
対応
データ変数/視覚変数
萼片幅:x座標、花弁幅:y座標、種別:色
と3つのデータ変数:視覚変数を対応
データ変数/視覚変数
散布図だと4つくらいの変数は表現可能
※ ただし、setosaの透明度が高く視認性が低いので・・・
データ変数/視覚変数
散布図だと4つくらいの変数は表現可能
※ ただし、setosaの透明度が高く視認性が低いので・・・
データ変数の「値」と「面
積」を対応付ける!!
「半径」を対応付けてしま
うと面積は自乗される!
視覚変数の特性
選択性:色、方向など
視覚変数が異なる場合、弁別が可能
関連性:色、形状など
視覚変数が異なる場合、同一グループの認識が可能
定量性:サイズ、位置など
視覚変数が異なる場合、2つの差を識別することが可能
順序性:強さ(透明度、彩度)など
視覚変数が異なる場合、順序の大小を識別することが
可能
データ変数の尺度
名義尺度:カテゴリ、名称など
同じかそれ以外かの比較しかできない
順序尺度:徒競走の順位、3択のアンケートなど
同じかどうか・大小比較はできるが、加減など
の演算はできない
等差尺度:日付など
差の比較はできるが、ゼロ点がなく比の意味が無い
比例尺度:人数、回数、経過秒数など
ゼロ点があり、差の比較、比の比較が可能
視覚変数の特性
これも掲載すればよかったと反省しています
Designing Data Visualizations (2011, O REILLY)
視覚変数の特性 (推奨)
これも掲載すればよかったと反省しています
Designing Data Visualizations (2011, O REILLY)
カテゴリを示すなら一択
カテゴリを示すなら一択テクスチャ系は図が煩雑に
なりやすい
Webでの可視化のいいところ
利点
Webで共有し、多くの人にデータに含まれ
る事実を届けることができる
税金はどこに行った?
マウスやキーボードによるインタラクショ
ンが利用できる
アニメーションが利用できる
時間軸を実際の時間に割り当てることで、表
現できるデータ変数を1つ増やすことができる
Webでの共有
http://spending.jp/
インタラクション
http://square.github.io/crossfilter/ http://www.cs.umd.edu
/ bederson/papers/index.html
アニメーション
https://www.youtube.com/watch?v=ezVk1ahRF78#t=4m23s
SVGについて
SVGとは
Scalable Vector Graphics
大きくしても綺麗
XML Document (DOM)
Inspectorで見やすい
SVGで使えるタグ
svg
g
defs, symbol, use
path, line, rect, circle
ellipse, polyline, polygon
!
あとはフィルター周りがたくさんありますが
ほとんど使う機会はありません
SVGはこんな感じ
<svg width="400" height="300">!
<g transform="translate(50,50)">!
<circle r="5" cx="128.571" cy="111.733" fill="blue"></circle>!
<circle r="5" cx="21.428" cy="121.600" fill="red"></circle>!
<circle r="5" cx="77.142" cy="138.4" fill="blue"></circle>!
<circle r="5" cx="111.428" cy="135.2" fill="blue"></circle>!
<circle r="5" cx="300" cy="0" fill="red"></circle>!
<circle r="5" cx="0" cy="73.066" fill="red"></circle>!
<circle r="5" cx="244.285" cy="192.266" fill="blue"></circle>!
<circle r="5" cx="270" cy="200" fill="red"></circle>!
<circle r="5" cx="51.428" cy="173.333" fill="red"></circle>!
</g>!
</svg>
SVGについてはこちらを
http://www.slideshare.net/kadoppe/inline-svghttp://www.slideshare.net/ssuser99dc16/svg-
maniaxcss-nite-after-dark7-svgmatsuda
D3.js
D3.jsとは
URL (http://d3js.org/)
Data-Driven-Documents
data に基づいて html/svg document
object の処理を行う、というコンセプト
SVG操作 + 数値処理 + 可視化ユーティリティ
の総合JavaScriptライブラリ
SVG:selector/attr/style
数値処理:scale/nest/array/math
可視化ユーティリティ: scale/axis/layout
具体例
<!doctype html>!
<html lang="ja">!
<head>!
<meta charset="utf8">!
<title>d3 introduction</title>!
<style>!
.axis line, .axis path { fill: none; stroke: grey; }!
</style>!
</head>!
<body>!
!
<div>!
<p>0th paragraph</p>!
<p>1st paragraph</p>!
<p>2nd paragraph</p>!
</div>!
!
<script type="text/javascript" charset="utf8" src="../components/d3/d3.min.js"></script>!
<script type="text/javascript" charset="utf8" src="./introduction.js"></script>!
</body>!
</html>
具体例 (属性/スタイル操作)
var paragraphs = d3.select('body').selectAll('p');!
paragraphs.style({background: 'cyan'});
具体例 (属性/スタイル操作)
var paragraphs = d3.select('body').selectAll('p');!
var pdata = [!
{text: "modified: 0th paragraph"},!
{text: "modified: 1th paragraph"},!
{text: "modified: 2th paragraph"}!
];!
paragraphs.data(pdata).text(function(d){ return
d.text; });
.data()でデータを紐付ける(ひとつのpに対して、ひとつの
データ)
.attr()/.text()/.style()などは引数に紐付けられたデータを
取り、それに応じた処理を行う
具体例 (データに基づく追加)
var pdata = d3.range(0, 5)!
.map(function(id){!
return {!
id: id,!
text: id + "th paragraph"!
};!
});!
!
paragraphs.data(pdata).enter()!
.append('p')!
.text(function(d){!
return d.text;!
});
増えた!
具体例 (データに基づく追加)
でも2つしか増えてない!
データの長さは(pdata.length=)5
なぜか?
既存のp
3
差分 2 ▶ これが増えた分!
データ 5
var pdata = d3.range(0, 5)!
.map(function(id){!
return {!
id: id,!
text: id + "th paragraph"!
};!
});!
!
paragraphs.data(pdata).enter()!
.append('p')!
.text(function(d){!
return d.text;!
});
具体例 (データに基づく追加)
.enter()によって、データ-DOMを処理の対象にする
具体例 (データに基づく削除)
var lessData = pdata.slice(0, 2);!
paragraphs.data(lessData).exit().remove();
「.data().exit()」
.exit()によって、DOM-データを処理の対象にする
データ
2
差分 1 ▶ これが.remove()した分
既存のp 3
Selection
.select()/.selectAll()で取得したDOM
や.append()によって追加したDOMを
selectionといいます
.data()によりデータを紐付けることができ
ます
.attr()/.style()/.text()などでは紐付け
られたデータを利用してDOMを処理するこ
とができます
Data
Driven
Documents
Selection
紐付けたデータ既存のDOM
.exit()
selection
.enter()
Selection (例えば)
紐付けたデータ既存のDOM
.exit()
selection
.enter()
属性・スタイル・テキ
ストの変更などを行う
新規にDOMを追加
し、同時に属性・スタ
イル・テキストをセッ
トする
既存のDOMを削除し
たり、透明度を上げた
りを行う
作成するときのコツ
SVGは基本
後に追加したものが上に表示される
Layer(gタグ)を使って制御するとうまく
書けます
transform属性をうまく使うと楽です
text周りは難しいです(kadoppeさんも
言ってます)
<svg width="500" height="500">!
<g width="480" height="480" transform="translate(10,10)">!
<g class="background-layer">!
<g class="ruler">!
<line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="0" y2="0"></line>!
<line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="48" y2="48"></line>!
<line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="96" y2="96"></line>!
<line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="144" y2="144"></line>!
<line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="192" y2="192"></line>!
<line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="240" y2="240"></line>!
<line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="288" y2="288"></line>!
<line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="336" y2="336"></line>!
<line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="384" y2="384"></line>!
<line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="432" y2="432"></line>!
</g>!
</g>!
<g class="chart-layer">!
<g><rect x="10" width="100" height="22" y="458" fill="#1f77b4"></rect></g>!
<g><rect x="170" width="100" height="209" y="271" fill="#ff7f0e"></rect></g>!
<g><rect x="330" width="100" height="478" y="2" fill="#2ca02c"></rect></g>!
</g>!
<g class="info-layer"></g>!
</g>!
</svg>
まとめ
データ可視化とは
The main goal of data visualization is its ability
to visualize data, communicating information
clearly and effectivelty.
Vitaly Friedman
!
データ可視化の目的は、データを可視化し、
情報を明確かつ効率的に伝えることである
!
可視化が果たすべき役割
視覚表現という「経験的」「認知的」に理解
をサポートする表現に変換するのが可視化
データを記号に、データセットを可視化に変
換する
「よく使われる可視化」はそれだけで理解が
進む可視化
理解が阻まれたら、それはすでに可視化じゃ
ない!
可視化の目的
☓「どう可視化するか?」
⃝「何を可視化するか?」
◎「なんのために可視化するか?」
可視化の目的
事実を発掘できてこその可視化
事実を活用できてこその可視化
!
改善行為の促進のための可視化
(ビジネス、政治、家計など)
データ可視化のマントラ
Overview First, Zoom and Filter,
Then Details-on-Demand
Overview First, Zoom and Filter,
Then Details-on-Demand
Overview First, Zoom and Filter,
Then Details-on-Demand
Ben Shneiderman
!
時間があったら
作ってみよう!
萼片長を高さとする棒グラフ
用意するもの
コード:
https://gist.github.com/
muddydixon/9295829
Webサーバ:
http://blog.kamipo.net/entry/
2013/02/20/122225
好きなサーバを立ち上げてください
html
<!doctype html>!
<html lang="ja">!
<head>!
<meta charset="utf8">!
<title>d3 scatter plog</title>!
<style>!
.axis line, .axis path { fill: none; stroke: grey; }!
</style>!
</head>!
<body>!
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>!
<script type="text/javascript" charset="utf8" src="./iris.js"></script>!
</body>!
</html>
JavaScript データの読み込み
var WIDTH = 500, HEIGHT = 500, margin = 50;!
var width = WIDTH - 2 * margin, height = HEIGHT - 2 * margin;!
var key = 'Sepal.Length';!
!
// iris.csv ファイルを読み込む!
d3.csv(!
"./iris.csv",!
// 行の型を修正!
function(d){!
for(var attr in d){!
if(! isNaN(Number(d[attr]))){!
d[attr] = +d[attr];!
}!
return d;!
}!
},!
// データを取得!
function(err, data){!
JavaScript SVG要素の作成
// データを取得!
function(err, data){!
!
// svg要素を追加!
var svg = d3.select('body').append('svg').attr({!
width: WIDTH,!
height: HEIGHT!
});!
// マージンを確保して、軸などを表示できるようにする!
var main = svg.append('g').attr({!
width: width,!
height: height,!
transform: "translate("+margin+","+margin+")"!
});!
!
// 色の尺度!
var color = d3.scale.category10();
JavaScript データの整形と整理
// データを入れ子にする!
var speciesData = d3.nest()!
// 種類ごとに分類するキーを指定!
.key(function(d){ return d.Species;})!
// 出力をキーにマッチした配列から、平均値に変更!
.rollup(function(values){!
return d3.mean(values, function(d){ return d[key]; });!
})!
// 値を配列で取得!
.entries(data);!
!
// 種類のキー一覧を取得!
var species = speciesData.map(function(d){ return d.key; });!
!
// 全体の高さの範囲を取得!
var domain = d3.extent(data, function(d){ return d[key]; });!
JavaScript 尺度作成
// y座標の尺度を取得!
var yScale = d3.scale.linear()!
// 変換後の範囲(値域)!
.range([0, height])!
// 変換前の範囲(定義域)!
.domain([0, domain[1]]);!
!
// x座標の尺度を取得!
var xScale = d3.scale.ordinal()!
// 変換後の範囲(値域)!
.rangeBands([0, width], .2)!
// 変換前の範囲(定義域)!
.domain(species);
JavaScript 棒を描画
// 棒(のグループ)要素を作成!
var bar = main.selectAll('g')!
.data(speciesData)!
.enter()!
.append('g')!
.attr({!
transform: function(d){!
return "translate("+xScale(d.key)+","+height+")";!
}!
});!
!
// 棒を描画!
bar.append('rect').attr({!
// 矩形の高さ!
height: function(d){ return yScale(d.values); },!
// 矩形の位置!
y: function(d){ return -yScale(d.values); },!
// 矩形の幅!
width: xScale.rangeBand(),!
// 矩形の色!
fill: function(d){ return color(d.key); }!
});!
JavaScript 棒に値を描画
// 棒(のグループ)要素を作成!
var bar = main.selectAll('g')!
.data(speciesData)!
.enter()!
.append('g')!
.attr({!
transform: function(d){!
return "translate("+xScale(d.key)+","+height+")";!
}!
});!
!
// 棒を描画 (前述)!
// 値を描画!
bar.append('text')!
// テキストは分類した時のキー!
.text(function(d){!
return d.values.toFixed(2);!
})!
.attr({!
// 位置を棒の上に!
dy: function(d){ return - yScale(d.values); },!
dx: xScale.rangeBand() / 2,!
fill: 'black'!
}).style('text-anchor', 'middle');
JavaScript 軸の描画
// x軸生成のユーティリティ!
var xAxisSvg = d3.svg.axis().scale(xScale);!
// y軸生成のユーティリティ!
var yAxisSvg = d3.svg.axis().scale(yScale.copy()!
.range([height, 0])).orient('left');!
// x軸を生成!
var xAxis = main.append('g').call(xAxisSvg).attr('class', 'axis')!
.attr("transform", "translate(0,"+height+")");!
// y軸を生成!
var yAxis = main.append('g').call(yAxisSvg).attr('class', 'axis');!
!
// y軸のラベルを記述!
main.append('text').text(key).attr({!
transform: "translate(-30,"+(height / 2)+") rotate(-90)"!
});
課題
棒グラフ
折線グラフ
散布図
インタラクション
アニメーション
ジオマッピング

More Related Content

What's hot

(beta)アプリを成長させるためのログ取りとログ解析に必要なこと
(beta)アプリを成長させるためのログ取りとログ解析に必要なこと(beta)アプリを成長させるためのログ取りとログ解析に必要なこと
(beta)アプリを成長させるためのログ取りとログ解析に必要なことTakao Sumitomo
 
MySQL のユーザー定義変数と RDB のココロ
MySQL のユーザー定義変数と RDB のココロMySQL のユーザー定義変数と RDB のココロ
MySQL のユーザー定義変数と RDB のココロtsudaa
 
Webでもできるデータビジュアライゼーション
WebでもできるデータビジュアライゼーションWebでもできるデータビジュアライゼーション
WebでもできるデータビジュアライゼーションKohei Kadowaki
 
20171125 springfest snappydata
20171125 springfest snappydata20171125 springfest snappydata
20171125 springfest snappydataMasaki Yamakawa
 
トレジャーデータとtableau実現する自動レポーティング
トレジャーデータとtableau実現する自動レポーティングトレジャーデータとtableau実現する自動レポーティング
トレジャーデータとtableau実現する自動レポーティングTakahiro Inoue
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionTetsutaro Watanabe
 
Webで役立つRDBの使い方
Webで役立つRDBの使い方Webで役立つRDBの使い方
Webで役立つRDBの使い方Soudai Sone
 
Html5 Web Applications
Html5  Web ApplicationsHtml5  Web Applications
Html5 Web Applicationstotty jp
 
⑱jQueryをおぼえよう!その4
⑱jQueryをおぼえよう!その4⑱jQueryをおぼえよう!その4
⑱jQueryをおぼえよう!その4Nishida Kansuke
 

What's hot (9)

(beta)アプリを成長させるためのログ取りとログ解析に必要なこと
(beta)アプリを成長させるためのログ取りとログ解析に必要なこと(beta)アプリを成長させるためのログ取りとログ解析に必要なこと
(beta)アプリを成長させるためのログ取りとログ解析に必要なこと
 
MySQL のユーザー定義変数と RDB のココロ
MySQL のユーザー定義変数と RDB のココロMySQL のユーザー定義変数と RDB のココロ
MySQL のユーザー定義変数と RDB のココロ
 
Webでもできるデータビジュアライゼーション
WebでもできるデータビジュアライゼーションWebでもできるデータビジュアライゼーション
Webでもできるデータビジュアライゼーション
 
20171125 springfest snappydata
20171125 springfest snappydata20171125 springfest snappydata
20171125 springfest snappydata
 
トレジャーデータとtableau実現する自動レポーティング
トレジャーデータとtableau実現する自動レポーティングトレジャーデータとtableau実現する自動レポーティング
トレジャーデータとtableau実現する自動レポーティング
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年version
 
Webで役立つRDBの使い方
Webで役立つRDBの使い方Webで役立つRDBの使い方
Webで役立つRDBの使い方
 
Html5 Web Applications
Html5  Web ApplicationsHtml5  Web Applications
Html5 Web Applications
 
⑱jQueryをおぼえよう!その4
⑱jQueryをおぼえよう!その4⑱jQueryをおぼえよう!その4
⑱jQueryをおぼえよう!その4
 

Viewers also liked

Reproducible Workflow with Cytoscape and Jupyter Notebook
Reproducible Workflow with Cytoscape and Jupyter NotebookReproducible Workflow with Cytoscape and Jupyter Notebook
Reproducible Workflow with Cytoscape and Jupyter NotebookKeiichiro Ono
 
Data Visualization: A Quick Tour for Data Science Enthusiasts
Data Visualization: A Quick Tour for Data Science EnthusiastsData Visualization: A Quick Tour for Data Science Enthusiasts
Data Visualization: A Quick Tour for Data Science EnthusiastsKrist Wongsuphasawat
 
CfJSummit2015 Day2 データとプログラミングで絵を描こう
 CfJSummit2015 Day2 データとプログラミングで絵を描こう CfJSummit2015 Day2 データとプログラミングで絵を描こう
CfJSummit2015 Day2 データとプログラミングで絵を描こうYuichi Yazaki
 
リスク可視化の基本的方法
リスク可視化の基本的方法リスク可視化の基本的方法
リスク可視化の基本的方法Takayuki Itoh
 
Visualizing biological graphs in Cytoscape.js
Visualizing biological graphs in Cytoscape.jsVisualizing biological graphs in Cytoscape.js
Visualizing biological graphs in Cytoscape.jsBenjamin Keller
 
Data Visualization Japanの目指すもの
Data Visualization Japanの目指すものData Visualization Japanの目指すもの
Data Visualization Japanの目指すものYuichi Yazaki
 
Code for Japan 第10回 Brigadeワークショップ
Code for Japan 第10回 BrigadeワークショップCode for Japan 第10回 Brigadeワークショップ
Code for Japan 第10回 BrigadeワークショップYuichi Yazaki
 
San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状
San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状
San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状Keiichiro Ono
 
「モダンな」可視化アプリケーション開発とはどのようなものか?
「モダンな」可視化アプリケーション開発とはどのようなものか?「モダンな」可視化アプリケーション開発とはどのようなものか?
「モダンな」可視化アプリケーション開発とはどのようなものか?Keiichiro Ono
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphP. Taylor Goetz
 

Viewers also liked (10)

Reproducible Workflow with Cytoscape and Jupyter Notebook
Reproducible Workflow with Cytoscape and Jupyter NotebookReproducible Workflow with Cytoscape and Jupyter Notebook
Reproducible Workflow with Cytoscape and Jupyter Notebook
 
Data Visualization: A Quick Tour for Data Science Enthusiasts
Data Visualization: A Quick Tour for Data Science EnthusiastsData Visualization: A Quick Tour for Data Science Enthusiasts
Data Visualization: A Quick Tour for Data Science Enthusiasts
 
CfJSummit2015 Day2 データとプログラミングで絵を描こう
 CfJSummit2015 Day2 データとプログラミングで絵を描こう CfJSummit2015 Day2 データとプログラミングで絵を描こう
CfJSummit2015 Day2 データとプログラミングで絵を描こう
 
リスク可視化の基本的方法
リスク可視化の基本的方法リスク可視化の基本的方法
リスク可視化の基本的方法
 
Visualizing biological graphs in Cytoscape.js
Visualizing biological graphs in Cytoscape.jsVisualizing biological graphs in Cytoscape.js
Visualizing biological graphs in Cytoscape.js
 
Data Visualization Japanの目指すもの
Data Visualization Japanの目指すものData Visualization Japanの目指すもの
Data Visualization Japanの目指すもの
 
Code for Japan 第10回 Brigadeワークショップ
Code for Japan 第10回 BrigadeワークショップCode for Japan 第10回 Brigadeワークショップ
Code for Japan 第10回 Brigadeワークショップ
 
San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状
San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状
San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状
 
「モダンな」可視化アプリケーション開発とはどのようなものか?
「モダンな」可視化アプリケーション開発とはどのようなものか?「モダンな」可視化アプリケーション開発とはどのようなものか?
「モダンな」可視化アプリケーション開発とはどのようなものか?
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraph
 

More from Daichi Morifuji

neural network introduction yapc asia tokyo
neural network introduction yapc asia tokyo neural network introduction yapc asia tokyo
neural network introduction yapc asia tokyo Daichi Morifuji
 
20150726 IoTってなに?ニフティクラウドmqttでやったこと
20150726 IoTってなに?ニフティクラウドmqttでやったこと20150726 IoTってなに?ニフティクラウドmqttでやったこと
20150726 IoTってなに?ニフティクラウドmqttでやったことDaichi Morifuji
 
Io t縛りの勉強会 #4
Io t縛りの勉強会 #4Io t縛りの勉強会 #4
Io t縛りの勉強会 #4Daichi Morifuji
 
Time Series Analysis by JavaScript LL matsuri 2013
Time Series Analysis by JavaScript LL matsuri 2013 Time Series Analysis by JavaScript LL matsuri 2013
Time Series Analysis by JavaScript LL matsuri 2013 Daichi Morifuji
 
ParamTuner 東京Node学園#8
ParamTuner 東京Node学園#8 ParamTuner 東京Node学園#8
ParamTuner 東京Node学園#8 Daichi Morifuji
 
オレオレMultipleInputを作る方法
オレオレMultipleInputを作る方法オレオレMultipleInputを作る方法
オレオレMultipleInputを作る方法Daichi Morifuji
 
BigData Analysis with mongo-hadoop
BigData Analysis with mongo-hadoopBigData Analysis with mongo-hadoop
BigData Analysis with mongo-hadoopDaichi Morifuji
 
MongoDBとHadoopの蜜月関係
MongoDBとHadoopの蜜月関係MongoDBとHadoopの蜜月関係
MongoDBとHadoopの蜜月関係Daichi Morifuji
 
企業と勉強会 @nifty エンジニアサポート
企業と勉強会 @nifty エンジニアサポート企業と勉強会 @nifty エンジニアサポート
企業と勉強会 @nifty エンジニアサポートDaichi Morifuji
 

More from Daichi Morifuji (15)

20151030 ux sketch vol5
20151030 ux sketch vol520151030 ux sketch vol5
20151030 ux sketch vol5
 
neural network introduction yapc asia tokyo
neural network introduction yapc asia tokyo neural network introduction yapc asia tokyo
neural network introduction yapc asia tokyo
 
20150726 IoTってなに?ニフティクラウドmqttでやったこと
20150726 IoTってなに?ニフティクラウドmqttでやったこと20150726 IoTってなに?ニフティクラウドmqttでやったこと
20150726 IoTってなに?ニフティクラウドmqttでやったこと
 
20150803 baas meetup
20150803 baas meetup20150803 baas meetup
20150803 baas meetup
 
Io t縛りの勉強会 #4
Io t縛りの勉強会 #4Io t縛りの勉強会 #4
Io t縛りの勉強会 #4
 
Gtug girls-20140828
Gtug girls-20140828Gtug girls-20140828
Gtug girls-20140828
 
Jubatus casulatalks2
Jubatus casulatalks2Jubatus casulatalks2
Jubatus casulatalks2
 
Perl for visualization
Perl for visualizationPerl for visualization
Perl for visualization
 
Time Series Analysis by JavaScript LL matsuri 2013
Time Series Analysis by JavaScript LL matsuri 2013 Time Series Analysis by JavaScript LL matsuri 2013
Time Series Analysis by JavaScript LL matsuri 2013
 
My best grunt
My best gruntMy best grunt
My best grunt
 
ParamTuner 東京Node学園#8
ParamTuner 東京Node学園#8 ParamTuner 東京Node学園#8
ParamTuner 東京Node学園#8
 
オレオレMultipleInputを作る方法
オレオレMultipleInputを作る方法オレオレMultipleInputを作る方法
オレオレMultipleInputを作る方法
 
BigData Analysis with mongo-hadoop
BigData Analysis with mongo-hadoopBigData Analysis with mongo-hadoop
BigData Analysis with mongo-hadoop
 
MongoDBとHadoopの蜜月関係
MongoDBとHadoopの蜜月関係MongoDBとHadoopの蜜月関係
MongoDBとHadoopの蜜月関係
 
企業と勉強会 @nifty エンジニアサポート
企業と勉強会 @nifty エンジニアサポート企業と勉強会 @nifty エンジニアサポート
企業と勉強会 @nifty エンジニアサポート
 

Html5j data visualization_and_d3