SlideShare a Scribd company logo
1 of 114
Download to read offline
Modern Dataviz Application Development
「モダンな」可視化アプリケーションとは?
Keiichiro Ono
University of California, San Diego
Keiichiro Ono
UC, San Diego Dept. of Medicine
Bioinformatics software engineer
National Resource for Network Biology 

The Cytoscape Consortium
Keiichiro Ono
UC, San Diego Dept. of Medicine
Bioinformatics software engineer
National Resource for Network Biology 

The Cytoscape Consortium
Cytoscape
Platform for (biological) network analysis and
visualization
Cytoscape
cytoscape.js
Cytoscape
デスクトップ・アプリケーションから始ま
り、今は関連プロジェクトのブランド名に
普段やっていること
-生物学分野でのデータを統合/解析/可視化するためのソフ
トウェア基盤整備
-研究者へのインタビュー、設計、技術評価、実装、テスト、
論文書き、学会発表、ワークショップの講師 (つまりな
んでもやります)
-この分野で扱うデータ
-塩基配列
-タンパク質の三次元構造
-遺伝子/タンパク質のネットワーク(グラフ)
-遺伝子の機能アノテーション
-データを提示する対象(クライアント)
-基礎医学研究者
-臨床医 (予定)
最近のプロジェクト紹介
最近のプロジェクト
- 階層化された遺伝子群を可視化する
- レガシーな技術で実装されたアプリケーションを、ウェブ
関連技術を使って拡張する
- 我々のプロジェクトでよく利用する可視化/UI部品の再利用
可能な(React)コンポーネント化
NDEx ClientBuilt with Electron
Electron App
Java-Swing App
DeepCell(仮)
本日のテーマ
-モダンなデータ可視化アプリケーション開発とは?
-複雑なデータセットを可視化するアプリケーション
のデザイン手法
-実際の設計と実装: React + D3を例に
本題の前に…
会場アンケート:
以下のツールを利用
していますか?
v4
-モダンなデータ可視化アプリケーション開発とは?
-複雑なデータセットを可視化するアプリケーション
のデザイン
-実際の設計と実装: React + D3を例に
「モダンな」可視化アプリケーションの実際
「モダンな」可視化
ウェブ・アプリケーションとは?
使用技術的にモダンではない
可視化アプリケーションの例
Cytoscape
• Java + Swing
• 基本的にO社はほぼ放棄
したUIツールキット
• 使用技術的にはモダン
ではない
Cytoscape
- 一方、開発スタイルや設計はできるだけ現代的であろうとしている
- OSGiによるモジュール化
- APIと実装の分離
- データモデル、viewモデル、レンダリングレイヤーの分離
- GitHub / CI / Unit tests / etc.
Heer, Jeffrey, and Maneesh Agrawala.
"Software design patterns for information visualization."
IEEE transactions on visualization and computer
graphics 12.5 (2006).
可視化特有の
デザインパターンの利用
HiView Top Component
Start Button
Command Bar Widget
Fit Button
Zoom Out Button
Zoom In Button
DAG View Network Viewer Widget
Cytoscape.js Renderer
WebGL based renderer (Optional)
Search Widget
Query Panel
Start Query Button
Clear Query Button
Query Text Box
Search Result Panel Search Result List
Search Result 1
Search Result n
Property Panel
Raw Interaction Data View
NetworkViewer Widget Cytoscape.js Renderer
Selected Edge Property Panel
Edge Score List
Edge Score Chart
Filter List Widget
Edge Type Filter Panel
Type Checkbox 1
Type Checkbox n
Edge Score Filters panel
Z-Score Filter
Integrated similarity score filter
Title Panel
Title
UUID
Description
Base Tabbed Pane
Gene Property Panel
Gene Name
Nested Property List
List Item 1
List Item n
Description
Term Property Panel
Selected Object’s Property Tab Nested Prop
Interaction Tab Interaction List
Inter
Inter
Assigned Genes Tab Gene List
Gen
Gen
Toolbar
Application Title
一つの定義
HiView Top Component
Sta
Command Bar Widget
Fit Button
Zoom Out Button
Zoom In Button
DAG View Network Viewer Widget
C
W
Search Widget
Query Panel
Start Que
Clear Qu
Query Te
Search Result Panel S
Property Panel
Raw Interaction Data View
Filter List Widget
Edg
Edg
Title Panel
Title
UUID
Description
Base Tabbed Pane
Gene
Term
Toolbar
Application Title
一つの定義
-モジュール化されている
-よく知られた可視化のパター
ンや原則を利用している
-アプリケーションの基本設計
- データとUIの設計が構造
化されている
-データの管理に一定のルール
を持つ
-テスト可能
(コンポーネント・ツリーの例)
特定のテクノロジー
を使うことは必ずし
も「モダン」である
ために必須ではない
モダンであること
=アプリケーションの構造デザイン
+使用するテクノロジー
そうは言ったものの…
マジョリティから外れると一気に余計
な労力が増えますので、できるだけメ
インストリームと呼べる情報量の多い
ツール群を使うのが現実的です
実装のための
ツール群
現時点での最適解
-言語: ES2015 以降
-パッケージマネージャ: npm
-ビルドツール: Webpack 3
-コンポーネント化: React
-可視化:
- D3
- 好みのレンダリング技術 (SVG/Canvas/WebGL)
この組み合わせでできること
-「普通の開発」
- トランスパイル、ミニファイ、テストなどの自動化
- モジュール化とそれに伴う再利用性の向上
- npmコマンドでのインストール
- コンポーネントベースでの可視化機能設計
WebComponentsは?
WebComponents
-未来には普及しているかもしれない
- Googleなどの強力な後押し
-“Perfect World”を目指しすぎ?
-動向は追う価値あり
各開発ツールの評価
(主観です)
知識の必要度
必須
必要(もしくは類似のツール)
ES5にこだわる必要がなければ必須
フロントエンド界隈が
複雑化しすぎ問題
How it feels to learn JavaScript in 2016
https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f
しかし本当にそこまで
複雑だろうか?
依存管理
ビルドとタスク実行
互換性のための変換(トランスパイル)
実装は移り変わっても、基本
的なツールのやっていること
はそれほど変わっていない
モダンであること
=アプリケーションの構造デザイン
+使用するテクノロジー
Recap
モダンであること
=アプリケーションの構造デザイン
+使用するテクノロジー
Recap
-モダンなデータ可視化アプリケーション開発とは?
-複雑なデータセットを可視化するアプリケーション
のデザイン
-実際の設計と実装: React + D3を例に
可視化アプリケーションを
デザインする
アプリケーションのタイプ
シンプルな
チャート
一つの画面に、一つ、も
しくは複数の独立したデー
タを可視化する
Examples from: http://www.reactd3.org/docs/basic/
Examples from: http://www.reactd3.org/docs/basic/
Data 1
Data 2
Scrollytelling
-複数のデータセットを用いて
ストーリーを構成する
-複数の独立したデータセット
をチャートに
-データジャーナリズムでよく
使われる
https://pudding.cool/process/how-to-implement-scrollytelling/
https://www.theguardian.com/us-news/ng-interactive/2015/oct/19/

homan-square-chicago-police-detainees
https://www.nytimes.com/interactive/2016/07/07/world/americas/

bolivia-climate-change-lake-poopo.html
-複数のデータセットを複数の手法で可視化
-可視化コンポーネントはイベントで連結されている
-機能はデスクトップ・アプリケーションに準ずる
Data
Dashboard
ライブラリ
汎用性を高めて他者が再利
用できるように設計された
可視化コンポーネント
Data Visualization
Component
CSS
3rd
party lib
JS
タイプに合わせてデザインを使い分ける
-シンプルなチャートを作るのに、Reactなどのデザイン方法に一定
の縛りをかけるフレームワークを使うのが本当に必要か?
- 更に言えば、D3などを使って書く必要は本当にあるのか?
-逆に、複雑なデータを持つダッシュボードを作るのに、一枚の
HTMLにJSをベタ書きするような方法でメンテナンス性などを確
保できるか?
-フレームワークから作り方を選ぶよりも、データと見せ方からフ
レームワークを選ぶ
自分なりのスタイルを考える
-シンプルな可視化アプリケーションであっても、自分が把
握できているボイラープレートから始めれば、各種フレー
ムワークを使う理由にはなり得る
- 完全にブラックボックスとして他人のボイラープレート
を使う場合は、メンテナンスや拡張時に困難を伴う
-他人(もしくは数ヶ月後の自分が)見て理解できるような構造
を考える
実際のデザイン例
ダッシュボードの全てをツリーで構成する
ケーススタディ:
デスクトップ代替の
データ可視化ダッシュボード作成
データセット
-各種実験から得られた大規模な遺伝子ネットワーク
-統計解析を行い生成した「オントロジー」
- DAGと簡略化されたツリー
-公共データベースに登録された遺伝子アノテーション
要するに…
-以下のようなデータをインタラクティブな可視化とし
て表現し、ユーザーの選択などに基づいて複数のビュー
を連動し変化させる
- 階層構造
- グラフ(ネットワーク)
- 各種プロパティ(テーブルデータ)
ダッシュボードの画面から必
要となるコンポーネント群を
ツリーとして書き出す
HiView Top Component
Start Dialog Widget
Server Information Panel
Credential Panel
Password Text Box
ID Text Box
DAG UUID Text Box
Server URL Text Box
Button Panel
Back to home Button
Start Button
Command Bar Widget
Fit Button
Zoom Out Button
Zoom In Button
DAG View Network Viewer Widget
Cytoscape.js Renderer
WebGL based renderer (Optional)
Search Widget
Query Panel
Start Query Button
Clear Query Button
Query Text Box
Search Result Panel Search Result List
Search Result 1
Search Result n
Property Panel
Raw Interaction Data View
NetworkViewer Widget Cytoscape.js Renderer
Selected Edge Property Panel
Edge Score List
Edge Score Chart
Filter List Widget
Edge Type Filter Panel
Type Checkbox 1
Type Checkbox n
Edge Score Filters panel
Z-Score Filter
Integrated similarity score filter
Title Panel
Title
UUID
Description
Base Tabbed Pane
Gene Property Panel
Gene Name
Nested Property List
List Item 1
List Item n
Description
Term Property Panel
Selected Object’s Property Tab Nested Property List
List Item 1
List Item n
Interaction Tab Interaction List
Interaction 1
Source
Type List Score for types
Target
Interaction n
Assigned Genes Tab Gene List
Gene 1 Gene props (TBD)
Gene n
Toolbar
Application Title
Toggle Menu Button
Application Settings Widget
Title Panel
Links Panel
Main View Settings Panel View Threshold Slider
Controller’s View State Panel
Show/Hide Search Panel Switch
Show/Hide Command Bar Switch
可視化に必要な要素を
コンポーネントのツリーとして
そのコンポーネントを作る
のに必要なデータモデルを
考える
Hierarchy DAG
Search
Selected Term
Network Properties
Nodes
Edges
Root Node ID
NDEx UUID
Node 1
Node n
Node Property 1
Node Property m
Edge 1
Edge n
Edge Property 1
Edge Property m
Raw interaction network
Position (x, y)
Term Properties
Nodes
Edges
Term ID
Term Name
Other property 1
Other property nClient Data Model Root Client Side Routing Current location
Query
User Credential NDEx ID
NDEx Password
Is search running
Search Result
Hit 1
Hit n
Is loading network
Past locations
Is loading network
1st child of property 1
M-th child of property 1
Network in Cytoscape.js
Edge ID
Source Node
Target Node
Node ID
Tree
(In Cytoscape.js)
Network Style
(Renderer-dependent)
Hidden Edges Hidden Edge 1
Hidden Edge nNDEx UUID
NDEx UUID
Term ID
Filters
Application Setting Rendering Options Main Tree View Threshold
Edge Type Filter
Edge Score Filters
Edge Type 1
Edge Type n
Is selected
Appearence Title
Score Threshold 1
Score Threshold 2
Is selected
Background color
location 1
location n
データモデルは一つの大きなツリーとして
HiView Web Application
MyGene.info
Description
Pathway annotation
Functional annotation
NDEx
Raw interactions
Main DAG (hierarchy)
CX to Cytoscape.js Service CX Tool written in Go
Graph Layout Service
D3 Cluster Layout
Other custom layouts
そしてその可視化アプリケーション実現
に必要なバックエンドをシンプルに作る
ポイント
-クライアントサイドの全てを木で考えるのは、可視化アプ
リケーションには比較的相性が良い
- データと可視化コンポーネントの描画への対応が明瞭
- ブランチごとに機能が分かれるので、どこを再利用可能
にするかを決めやすい
- 機能追加 

= データ/コンポーネント木へのブランチ(枝)追加
-モダンなデータ可視化アプリケーション開発とは?
-複雑なデータセットを可視化するアプリケーション
のデザイン
-実際の設計と実装: React + D3を例に
実装するための
技術選択
React + D3.js v4
それぞれの特徴
React
-Viewのみに特化した比較的小さなフレームワーク
-コンポーネント化を強く意識した設計
- Reactベースのアプリケーション =

コンポーネントの集合
React
D3.js v4
-可視化に関する様々な計算を行う事実上の標準ライブラリ
-v4になり後方互換性を捨てた大規模なアップデートを行う
- モジュール化
- 元々D3は可視化に限らない様々な機能の集合体だった
- レイアウト、CSV読み込み、カラーコーディング生成
D3.js v4
v4のモジュール群
d3-pathd3-array
d3-dsvd3-drag d3-format
d3-dispatch
d3-timer
d3-quadtree
d3-collection
d3-time
d3-time-formatd3-transition
d3-color
d3-interpolate
d3-ease
d3-hierarchy d3-brush
d3-selection
d3-queued3-random d3-voronoi d3-zoom d3-scaled3-forced3-polygon
D3.js v4
d3-chordd3-request d3-geod3-axis d3-shape
D3.js v4
d3-drag
d3-dispatch
d3-timer
d3-transition
d3-color
d3-interpolate
d3-ease
d3-hierarchy d3-brush
d3-selection
d3-queued3-random d3-voronoi d3-zoom d3-polyg
例: D3 stratify moduleをレイア
ウトエンジンとしてサーバー
サイドで使う
なぜ組み合わせるのか?
-カラーマッピング、標準的
レイアウトなど可視化に関
するマッピング、モデリン
グ部分の機能が充実してい
る
-比較的ローレベルな機能が
多いので、コンポーネント
レベルでの書き方の規律は
持たない
-基本的には、与えられたデー
タ(props)を元に差分を指示通り
に描画するのみ
-コンポーネント化との相性が
いい
-データ可視化の基本的な考え
方にもよく馴染む
- 与えられたデータから視覚
要素へのマッピング関数
各ライブラリの役割分担
-基本的にはReactに仮想DOMの管理を任せる
-コンポーネントのツリーとして可視化を表現する
-D3を数学用ライブラリとして使い、可視化関連に
必要な計算のみに徹する
- カラーコーディング、レイアウト、スケーリ
ングなど
アプリケーション
デザインのパターン
Data Mapping render()
Low-level rendering
Transform
各ライブラリの役割分担
パターン1:
描画をReactに任せる
-React-centricな書き方
- 可視化モジュールをツリー形式の構造に分割
- 例:グラフデータ
- ノード、エッジをベースコンポーネントとして、
その集合としてのグラグコンポーネントを定義
-もっとも標準的なReactコンポーネントの書き方のパターン
Shape EllipseNode
Neuron
Rectangle
コンポーネントの関係
最もシンプルなコンポーネントの例
const Ellipse = props => (
<ellipse
rx={props.w}
ry={props.h}
style={props.style}
/>
)
class Shape extends Component {
render() {
const shapeName = this.props.shapeName
if (shapeName === 'circle') {
return (
<Ellipse
width={this.props.size}
height={this.props.size}
style={this.props.style}
/>)
} else {
return (
<Neuron
data={this.props.data}
size={this.props.size}
/>)
}
}
}
class Node extends Component {
onClick = event => {
this.setState({selected: !this.state.selected})
this.props.eventHandlers.nodeSelected(this.props.id)
}
render() {
return (
<g
className={this.props.nodeType}
transform={this.getTransform(this.props.position)}
onClick={this.onClick}
>
<Shape
size={this.props.nodeSize}
position={this.props.position}
style={style}
shapeName={shapeName}
data={this.props.data}
/>
{textElement}
</g>
)
}
}
D3はどこに…?
脇役に徹する
import * as d3Interpolate from 'd3-interpolate'
const colorMapper = d3Interpolate.interpolateHcl('white', ‘orange')
const fillColor = colorMapper(this.props.datapoint)
数値に対応したカラーコーディングの生成
脇役に徹する
componentDidMount() {
const treeArea = d3Select.select('#' + this.state.rootTag)
const zoom = d3Zoom.zoom(treeArea)
.scaleExtent([1 / 10, 100])
.on('zoom', this.zoomed)
const zoomArea = d3Select
.select('#' + this.state.zoomAreaTag)
.call(zoom)
// Move to initial location
zoomArea.call(zoom.transform,
d3Zoom.zoomIdentity.translate(
this.props.initialPosition.x, this.props.initialPosition.y))
}
ズームレベルの計算
const getTree = edges => {
return d3Hierarchy
.stratify()
.id(d => (d.id))
.parentId(d => (d.parentId))(edges)
}
const applyCluster = d3Tree => {
const layout = d3Hierarchy
.cluster()
.size([360, 1600])
.separation((a, b) => {
return (a.parent === b.parent ? 1: 2) / a.depth
})
// Apply layout and generate (x,y) positions
layout(d3Tree)
}
レイアウトの生成
パターン2:
ほとんどの描画をD3で行う
-D3の流儀でほとんどの描画を行う
-Reactのrender()内ではターゲットとなるタグを描画するのみ
render() {
return (
<svg width={width} height={height}>
<g ref='graph' />
</svg>
)
}
パターン2で作成した場合のrender()メソッド
componentDidMount() {
this.d3Graph =
d3.select(ReactDOM.findDOMNode(this.refs.graph))
// ここからはいつものD3のコード(略)
},
どちらのパターン
がベターなのか?
答:状況による
-実装者の技量、アプリケーションの規模、データの大きさ
などによって答えは異なる
-よりReact風なアプリケーションを目指すならパターン1
を、薄いラッパーとして使いたいだけならパターン2を
Tips
スクラッチからの作成を避ける
-目的の達成に、本当にD3でのカスタムコンポーネントが必
要か?
-既存のライブラリの組み合わせやラッピングの検討
- render()メソッド内では起点となるタグのみを描画
- ライフサイクルメソッドでアップデートを管理
- (これが結構辛い場合もある…)
全てをフロントエンド
でやろうとしない
-必要に応じてバックエンドで処理
するように書く
-PythonやRの方が得意そうな処理
だと思えば、薄いラッパーを書い
てREST API、もしくはRPCとして
呼び出す
-その場合には極力シンプルに、で
きればstatelessに
Docker as Portable Data
Visualization Backend
まとめ
まとめ
-モダンと呼べる可視化アプリケーションはメンテナンス可
能な構造を持つ
-特定のテクノロジーに縛られすぎない
- ある程度の変化は受け入れる
-現状ではReact+D3の組み合わせは構造化された可視化アプ
リケーションを作る場合に便利な選択肢である
触れられなかったこと
-データ管理部分の実装
- Flux / Redux
- アプリケーションの規模によるところが大きい
-SVG以外の描画
-Webpackなどのビルドツールを使う際のノウハウ
参考文献
Learning React
Functional Web Development
with React and Redux
By Alex Banks, Eve Porcello
Publisher: O'Reilly Media
Release Date: May 2017
現時点(7/2017)でもっとも「標準的な」テクノロジーの組
み合わせで書いてある良書
2017 Keiichiro Ono
kono@ucsd.edu

More Related Content

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
 
CfJSummit2015 Day2 データとプログラミングで絵を描こう
 CfJSummit2015 Day2 データとプログラミングで絵を描こう CfJSummit2015 Day2 データとプログラミングで絵を描こう
CfJSummit2015 Day2 データとプログラミングで絵を描こうYuichi Yazaki
 
Code for Japan 第10回 Brigadeワークショップ
Code for Japan 第10回 BrigadeワークショップCode for Japan 第10回 Brigadeワークショップ
Code for Japan 第10回 BrigadeワークショップYuichi Yazaki
 
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
 
リスク可視化の基本的方法
リスク可視化の基本的方法リスク可視化の基本的方法
リスク可視化の基本的方法Takayuki Itoh
 
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
 
Html5j data visualization_and_d3
Html5j data visualization_and_d3Html5j data visualization_and_d3
Html5j data visualization_and_d3Daichi Morifuji
 
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 (9)

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
 
CfJSummit2015 Day2 データとプログラミングで絵を描こう
 CfJSummit2015 Day2 データとプログラミングで絵を描こう CfJSummit2015 Day2 データとプログラミングで絵を描こう
CfJSummit2015 Day2 データとプログラミングで絵を描こう
 
Code for Japan 第10回 Brigadeワークショップ
Code for Japan 第10回 BrigadeワークショップCode for Japan 第10回 Brigadeワークショップ
Code for Japan 第10回 Brigadeワークショップ
 
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の目指すもの
 
リスク可視化の基本的方法
リスク可視化の基本的方法リスク可視化の基本的方法
リスク可視化の基本的方法
 
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
 
Html5j data visualization_and_d3
Html5j data visualization_and_d3Html5j data visualization_and_d3
Html5j data visualization_and_d3
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraph
 

Similar to 「モダンな」可視化アプリケーション開発とはどのようなものか?

地図を片手にアジャイル開発
地図を片手にアジャイル開発地図を片手にアジャイル開発
地図を片手にアジャイル開発Zenji Kanzaki
 
Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127Keita Onabuta
 
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...Shinji Takao
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現インフラジスティックス・ジャパン株式会社
 
Qiita x Microsoft - 機械学習セミナー Microsoft AI Platform
Qiita x Microsoft - 機械学習セミナー Microsoft AI PlatformQiita x Microsoft - 機械学習セミナー Microsoft AI Platform
Qiita x Microsoft - 機械学習セミナー Microsoft AI PlatformDaiyu Hatakeyama
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料Recruit Technologies
 
Iot algyan jhirono 20190111
Iot algyan jhirono 20190111Iot algyan jhirono 20190111
Iot algyan jhirono 20190111Hirono Jumpei
 
Azure Antenna AI 概要
Azure Antenna AI 概要Azure Antenna AI 概要
Azure Antenna AI 概要Miho Yamamoto
 
Reactive Workflow Argo Eventsの紹介
Reactive Workflow Argo Eventsの紹介Reactive Workflow Argo Eventsの紹介
Reactive Workflow Argo Eventsの紹介Daisuke Taniwaki
 
Open Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfOpen Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfMasahiko Umeno
 
Microsoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI PlatformMicrosoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI PlatformDaiyu Hatakeyama
 
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Daiyu Hatakeyama
 
Cytoscape Ecosystem Presentation at DBCLS Kashiwa
Cytoscape Ecosystem Presentation at DBCLS KashiwaCytoscape Ecosystem Presentation at DBCLS Kashiwa
Cytoscape Ecosystem Presentation at DBCLS KashiwaKeiichiro Ono
 
TERAS Conference
TERAS ConferenceTERAS Conference
TERAS ConferenceKeiju Anada
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングYosuke Mizutani
 
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用de:code 2017
 
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...Insight Technology, Inc.
 

Similar to 「モダンな」可視化アプリケーション開発とはどのようなものか? (20)

地図を片手にアジャイル開発
地図を片手にアジャイル開発地図を片手にアジャイル開発
地図を片手にアジャイル開発
 
Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127
 
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現
 
Qiita x Microsoft - 機械学習セミナー Microsoft AI Platform
Qiita x Microsoft - 機械学習セミナー Microsoft AI PlatformQiita x Microsoft - 機械学習セミナー Microsoft AI Platform
Qiita x Microsoft - 機械学習セミナー Microsoft AI Platform
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
 
Iot algyan jhirono 20190111
Iot algyan jhirono 20190111Iot algyan jhirono 20190111
Iot algyan jhirono 20190111
 
Azure Antenna AI 概要
Azure Antenna AI 概要Azure Antenna AI 概要
Azure Antenna AI 概要
 
Reactive Workflow Argo Eventsの紹介
Reactive Workflow Argo Eventsの紹介Reactive Workflow Argo Eventsの紹介
Reactive Workflow Argo Eventsの紹介
 
Open Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfOpen Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdf
 
Microsoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI PlatformMicrosoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI Platform
 
20151028koyama
20151028koyama20151028koyama
20151028koyama
 
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
 
Cytoscape Ecosystem Presentation at DBCLS Kashiwa
Cytoscape Ecosystem Presentation at DBCLS KashiwaCytoscape Ecosystem Presentation at DBCLS Kashiwa
Cytoscape Ecosystem Presentation at DBCLS Kashiwa
 
TERAS Conference
TERAS ConferenceTERAS Conference
TERAS Conference
 
OSS ソースコードサーチツールの効能、有効活用方法
OSS ソースコードサーチツールの効能、有効活用方法OSS ソースコードサーチツールの効能、有効活用方法
OSS ソースコードサーチツールの効能、有効活用方法
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
 
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
 
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
 

More from Keiichiro Ono

今あえてコードから可視化を作る (Data Visualization Japan Meetup 2020)
今あえてコードから可視化を作る (Data Visualization Japan Meetup 2020)今あえてコードから可視化を作る (Data Visualization Japan Meetup 2020)
今あえてコードから可視化を作る (Data Visualization Japan Meetup 2020)Keiichiro Ono
 
Eyeo 2019-Lightning-Cytoscape
Eyeo 2019-Lightning-CytoscapeEyeo 2019-Lightning-Cytoscape
Eyeo 2019-Lightning-CytoscapeKeiichiro Ono
 
第1回バイオインフォマティクスデータ可視化セミナー@Riken
第1回バイオインフォマティクスデータ可視化セミナー@Riken第1回バイオインフォマティクスデータ可視化セミナー@Riken
第1回バイオインフォマティクスデータ可視化セミナー@RikenKeiichiro Ono
 
Overview of Modern Graph Analysis Tools
Overview of Modern Graph Analysis ToolsOverview of Modern Graph Analysis Tools
Overview of Modern Graph Analysis ToolsKeiichiro Ono
 
What's New in Cytoscape
What's New in CytoscapeWhat's New in Cytoscape
What's New in CytoscapeKeiichiro Ono
 
Introduction to Biological Network Analysis and Visualization with Cytoscape ...
Introduction to Biological Network Analysis and Visualization with Cytoscape ...Introduction to Biological Network Analysis and Visualization with Cytoscape ...
Introduction to Biological Network Analysis and Visualization with Cytoscape ...Keiichiro Ono
 
Introduction to Biological Network Analysis and Visualization with Cytoscape ...
Introduction to Biological Network Analysis and Visualization with Cytoscape ...Introduction to Biological Network Analysis and Visualization with Cytoscape ...
Introduction to Biological Network Analysis and Visualization with Cytoscape ...Keiichiro Ono
 
Building Reproducible Network Data Analysis / Visualization Workflows
Building Reproducible Network Data Analysis / Visualization WorkflowsBuilding Reproducible Network Data Analysis / Visualization Workflows
Building Reproducible Network Data Analysis / Visualization WorkflowsKeiichiro Ono
 
SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...
SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...
SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...Keiichiro Ono
 
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford ConsortiumSDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford ConsortiumKeiichiro Ono
 
VIZBI 2015 Tutorial: Cytoscape, IPython, Docker, and Reproducible Network Dat...
VIZBI 2015 Tutorial: Cytoscape, IPython, Docker, and Reproducible Network Dat...VIZBI 2015 Tutorial: Cytoscape, IPython, Docker, and Reproducible Network Dat...
VIZBI 2015 Tutorial: Cytoscape, IPython, Docker, and Reproducible Network Dat...Keiichiro Ono
 
Cytoscape: Now and Future
Cytoscape: Now and FutureCytoscape: Now and Future
Cytoscape: Now and FutureKeiichiro Ono
 
cyREST: Cytoscape as a Service
cyREST: Cytoscape as a ServicecyREST: Cytoscape as a Service
cyREST: Cytoscape as a ServiceKeiichiro Ono
 
GraphLab Conference 2014 Cytoscape Flyer
GraphLab Conference 2014 Cytoscape FlyerGraphLab Conference 2014 Cytoscape Flyer
GraphLab Conference 2014 Cytoscape FlyerKeiichiro Ono
 
Cytoscape Untangles the Web: a first step towards Cytoscape Cyberinfrastructu...
Cytoscape Untangles the Web: a first step towards Cytoscape Cyberinfrastructu...Cytoscape Untangles the Web: a first step towards Cytoscape Cyberinfrastructu...
Cytoscape Untangles the Web: a first step towards Cytoscape Cyberinfrastructu...Keiichiro Ono
 
NeXO Web Poster for ISMB 2014 BioVis SIG
NeXO Web Poster for ISMB 2014 BioVis SIGNeXO Web Poster for ISMB 2014 BioVis SIG
NeXO Web Poster for ISMB 2014 BioVis SIGKeiichiro Ono
 
Towards the Cytoscape Cyberinfrastructure
Towards the Cytoscape CyberinfrastructureTowards the Cytoscape Cyberinfrastructure
Towards the Cytoscape CyberinfrastructureKeiichiro Ono
 
OPENVIS Conference Quick Report Part 2
OPENVIS Conference Quick Report Part 2OPENVIS Conference Quick Report Part 2
OPENVIS Conference Quick Report Part 2Keiichiro Ono
 
Quick Introduction to Cytoscape for Undergraduates
Quick Introduction to Cytoscape for UndergraduatesQuick Introduction to Cytoscape for Undergraduates
Quick Introduction to Cytoscape for UndergraduatesKeiichiro Ono
 
OpenVis Conference Report Part 1 (and Introduction to D3.js)
OpenVis Conference Report Part 1 (and Introduction to D3.js)OpenVis Conference Report Part 1 (and Introduction to D3.js)
OpenVis Conference Report Part 1 (and Introduction to D3.js)Keiichiro Ono
 

More from Keiichiro Ono (20)

今あえてコードから可視化を作る (Data Visualization Japan Meetup 2020)
今あえてコードから可視化を作る (Data Visualization Japan Meetup 2020)今あえてコードから可視化を作る (Data Visualization Japan Meetup 2020)
今あえてコードから可視化を作る (Data Visualization Japan Meetup 2020)
 
Eyeo 2019-Lightning-Cytoscape
Eyeo 2019-Lightning-CytoscapeEyeo 2019-Lightning-Cytoscape
Eyeo 2019-Lightning-Cytoscape
 
第1回バイオインフォマティクスデータ可視化セミナー@Riken
第1回バイオインフォマティクスデータ可視化セミナー@Riken第1回バイオインフォマティクスデータ可視化セミナー@Riken
第1回バイオインフォマティクスデータ可視化セミナー@Riken
 
Overview of Modern Graph Analysis Tools
Overview of Modern Graph Analysis ToolsOverview of Modern Graph Analysis Tools
Overview of Modern Graph Analysis Tools
 
What's New in Cytoscape
What's New in CytoscapeWhat's New in Cytoscape
What's New in Cytoscape
 
Introduction to Biological Network Analysis and Visualization with Cytoscape ...
Introduction to Biological Network Analysis and Visualization with Cytoscape ...Introduction to Biological Network Analysis and Visualization with Cytoscape ...
Introduction to Biological Network Analysis and Visualization with Cytoscape ...
 
Introduction to Biological Network Analysis and Visualization with Cytoscape ...
Introduction to Biological Network Analysis and Visualization with Cytoscape ...Introduction to Biological Network Analysis and Visualization with Cytoscape ...
Introduction to Biological Network Analysis and Visualization with Cytoscape ...
 
Building Reproducible Network Data Analysis / Visualization Workflows
Building Reproducible Network Data Analysis / Visualization WorkflowsBuilding Reproducible Network Data Analysis / Visualization Workflows
Building Reproducible Network Data Analysis / Visualization Workflows
 
SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...
SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...
SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...
 
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford ConsortiumSDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
 
VIZBI 2015 Tutorial: Cytoscape, IPython, Docker, and Reproducible Network Dat...
VIZBI 2015 Tutorial: Cytoscape, IPython, Docker, and Reproducible Network Dat...VIZBI 2015 Tutorial: Cytoscape, IPython, Docker, and Reproducible Network Dat...
VIZBI 2015 Tutorial: Cytoscape, IPython, Docker, and Reproducible Network Dat...
 
Cytoscape: Now and Future
Cytoscape: Now and FutureCytoscape: Now and Future
Cytoscape: Now and Future
 
cyREST: Cytoscape as a Service
cyREST: Cytoscape as a ServicecyREST: Cytoscape as a Service
cyREST: Cytoscape as a Service
 
GraphLab Conference 2014 Cytoscape Flyer
GraphLab Conference 2014 Cytoscape FlyerGraphLab Conference 2014 Cytoscape Flyer
GraphLab Conference 2014 Cytoscape Flyer
 
Cytoscape Untangles the Web: a first step towards Cytoscape Cyberinfrastructu...
Cytoscape Untangles the Web: a first step towards Cytoscape Cyberinfrastructu...Cytoscape Untangles the Web: a first step towards Cytoscape Cyberinfrastructu...
Cytoscape Untangles the Web: a first step towards Cytoscape Cyberinfrastructu...
 
NeXO Web Poster for ISMB 2014 BioVis SIG
NeXO Web Poster for ISMB 2014 BioVis SIGNeXO Web Poster for ISMB 2014 BioVis SIG
NeXO Web Poster for ISMB 2014 BioVis SIG
 
Towards the Cytoscape Cyberinfrastructure
Towards the Cytoscape CyberinfrastructureTowards the Cytoscape Cyberinfrastructure
Towards the Cytoscape Cyberinfrastructure
 
OPENVIS Conference Quick Report Part 2
OPENVIS Conference Quick Report Part 2OPENVIS Conference Quick Report Part 2
OPENVIS Conference Quick Report Part 2
 
Quick Introduction to Cytoscape for Undergraduates
Quick Introduction to Cytoscape for UndergraduatesQuick Introduction to Cytoscape for Undergraduates
Quick Introduction to Cytoscape for Undergraduates
 
OpenVis Conference Report Part 1 (and Introduction to D3.js)
OpenVis Conference Report Part 1 (and Introduction to D3.js)OpenVis Conference Report Part 1 (and Introduction to D3.js)
OpenVis Conference Report Part 1 (and Introduction to D3.js)
 

「モダンな」可視化アプリケーション開発とはどのようなものか?