SlideShare a Scribd company logo
Soumettre la recherche
Mettre en ligne
S’identifier
S’inscrire
rChartsによるインタラクティブな可視化表現
Signaler
Yasuyuki Sugai
Suivre
null
29 Mar 2014
•
0 j'aime
•
11,270 vues
1
sur
28
rChartsによるインタラクティブな可視化表現
29 Mar 2014
•
0 j'aime
•
11,270 vues
Télécharger maintenant
Télécharger pour lire hors ligne
Signaler
Technologie
第37回R勉強会@東京(#TokyoR)で発表したネタです
Yasuyuki Sugai
Suivre
null
Recommandé
可視化周辺の進化がヤヴァイ~rChartsを中心として~
Nagi Teramo
27.7K vues
•
26 diapositives
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
Nagi Teramo
31.4K vues
•
96 diapositives
先端技術 関数型プログラミング
聡 中川
814 vues
•
24 diapositives
Tokyor13 - YjdnJlpパッケージとTokyo.R翻訳プロジェクトの紹介
Yohei Sato
3.2K vues
•
35 diapositives
2011.6.4 TDD bootcamp 札幌2.0 自己紹介LT
Hiro H.
1.8K vues
•
14 diapositives
Rubyと機械学習の現状
Aki Ariga
19.2K vues
•
25 diapositives
Contenu connexe
Tendances
RoboticsとC++@歌舞伎座.tech#8「C++初心者会」
Takashi Ogura
4.4K vues
•
19 diapositives
Rubyの会社でPythonistaが3ヶ月生き延びた話
Tokoroten Nakayama
9.2K vues
•
25 diapositives
C++がなぜ組込みに採用されにくいか
Tsuyoshi Kato
7.8K vues
•
13 diapositives
Use Japanese with vcd/vcdExtra package
Tsuda University Institute for Mathematics and Computer Science
992 vues
•
23 diapositives
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
17.3K vues
•
33 diapositives
PyPy 紹介
shoma h
8.3K vues
•
82 diapositives
Tendances
(10)
RoboticsとC++@歌舞伎座.tech#8「C++初心者会」
Takashi Ogura
•
4.4K vues
Rubyの会社でPythonistaが3ヶ月生き延びた話
Tokoroten Nakayama
•
9.2K vues
C++がなぜ組込みに採用されにくいか
Tsuyoshi Kato
•
7.8K vues
Use Japanese with vcd/vcdExtra package
Tsuda University Institute for Mathematics and Computer Science
•
992 vues
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
•
17.3K vues
PyPy 紹介
shoma h
•
8.3K vues
ROS2.0時代に備えたc++11/14
Takashi Ogura
•
4.8K vues
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
shoma h
•
3.9K vues
2つのmosaic plotと日本語表示
Tsuda University Institute for Mathematics and Computer Science
•
2K vues
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Shinichi Okada
•
918 vues
En vedette
生物成長曲線予測の事例
yoshi_flt
5.4K vues
•
10 diapositives
Maeshori missing
Daisuke Ichikawa
7.3K vues
•
38 diapositives
Rで学ぶ離散選択モデル
宏喜 佐野
31.8K vues
•
78 diapositives
Rで部屋探し For slide share
Shota Yasui
10.6K vues
•
18 diapositives
20140329 tokyo r lt 「カーネルとsvm」
tetsuro ito
9.7K vues
•
18 diapositives
10分で分かるr言語入門ver2.7
Nobuaki Oshiro
7.2K vues
•
103 diapositives
En vedette
(20)
生物成長曲線予測の事例
yoshi_flt
•
5.4K vues
Maeshori missing
Daisuke Ichikawa
•
7.3K vues
Rで学ぶ離散選択モデル
宏喜 佐野
•
31.8K vues
Rで部屋探し For slide share
Shota Yasui
•
10.6K vues
20140329 tokyo r lt 「カーネルとsvm」
tetsuro ito
•
9.7K vues
10分で分かるr言語入門ver2.7
Nobuaki Oshiro
•
7.2K vues
Feature Selection with R / in JP
Sercan Ahi
•
98.8K vues
Rで学ぶデータマイニングI 第8章〜第13章
Prunus 1350
•
6.4K vues
Rでreproducible research
Shintaro Fukushima
•
8K vues
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
宏喜 佐野
•
24.6K vues
TokyoR LT Rで連続データを離散化
tetsuro ito
•
3.8K vues
RとJavaScript Visualizationを俯瞰しよう
Yasuyuki Sugai
•
10.7K vues
はじめよう多変量解析~主成分分析編~
宏喜 佐野
•
160.8K vues
AshiAto ---Web閲覧履歴可視化ツール
Jun Obana
•
1.1K vues
B2Bベンチャー勉強会
Joji Hori
•
1.2K vues
B2B Lead Generation & Lead Nurturing
Jun Obana
•
5.3K vues
日本仮想化技術 提供サービスのご紹介
VirtualTech Japan Inc.
•
922 vues
日本仮想化技術 OpenStackサービスメニューのご紹介
VirtualTech Japan Inc.
•
1.6K vues
RでつくるWebアプリ~rApache編~
Kazuya Wada
•
4.7K vues
Tokyo webmining
宏喜 佐野
•
8.4K vues
Similaire à rChartsによるインタラクティブな可視化表現
デザインパターンを用いたリファクタリング
kei takakuda
1.4K vues
•
39 diapositives
Rxjavaとoptionalで関数型androidしよう
Fumihiko Shiroyama
4.7K vues
•
54 diapositives
Reactive Extensionの紹介
Dev Ogiwara
34 vues
•
78 diapositives
GraphQLについての5分間
Matsuo Obu
357 vues
•
19 diapositives
VPSやめてHerokuに移行したお話
Hiroyuki Hayashi
7.4K vues
•
50 diapositives
映画にでてくるハッカーになりたい - YAPC Asia 2010
Hiroh Satoh
5.4K vues
•
86 diapositives
Similaire à rChartsによるインタラクティブな可視化表現
(15)
デザインパターンを用いたリファクタリング
kei takakuda
•
1.4K vues
Rxjavaとoptionalで関数型androidしよう
Fumihiko Shiroyama
•
4.7K vues
Reactive Extensionの紹介
Dev Ogiwara
•
34 vues
GraphQLについての5分間
Matsuo Obu
•
357 vues
VPSやめてHerokuに移行したお話
Hiroyuki Hayashi
•
7.4K vues
映画にでてくるハッカーになりたい - YAPC Asia 2010
Hiroh Satoh
•
5.4K vues
Scratchと子供達の5年間
Masao Niizuma
•
751 vues
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
Yuuki Takezawa
•
6K vues
Tokyo.R 白熱教室「これからのRcppの話をしよう」
Nagi Teramo
•
11.1K vues
OsakaArchVizCamp#1 - UE4 Introduction
Tatsuya Sumisaki
•
703 vues
Graph R-CNN for Scene Graph Generation
kanosawa
•
575 vues
Refrection of kawasaki.rb
Aki Ariga
•
3.2K vues
20171002 クリエイティブコーディングをはじめよう we are java-scripters! @12th-(yuxioarts)
Yuxio tech
•
329 vues
The History of Reactive Extensions
Yoshifumi Kawai
•
60.8K vues
Meguro es7
健太 田上
•
357 vues
Plus de Yasuyuki Sugai
業務システムで使える可視化テクニック - Apache HTTP編 -
Yasuyuki Sugai
1.4K vues
•
64 diapositives
AnsibleではじめるNW設定の自動化について - Cisco(VIRL)編 -
Yasuyuki Sugai
4.3K vues
•
91 diapositives
Caffeの特徴と最近の動向 -CNN、そしてRNNへ-
Yasuyuki Sugai
3K vues
•
68 diapositives
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
Yasuyuki Sugai
6.4K vues
•
58 diapositives
第三回デジタルガジェット祭り! LT「ペットとセンサー編」
Yasuyuki Sugai
1.2K vues
•
13 diapositives
AITCオープンラボ IoTx総まとめ「IoTxロボット・AI開発をはじめよう!」
Yasuyuki Sugai
2.9K vues
•
22 diapositives
Plus de Yasuyuki Sugai
(19)
業務システムで使える可視化テクニック - Apache HTTP編 -
Yasuyuki Sugai
•
1.4K vues
AnsibleではじめるNW設定の自動化について - Cisco(VIRL)編 -
Yasuyuki Sugai
•
4.3K vues
Caffeの特徴と最近の動向 -CNN、そしてRNNへ-
Yasuyuki Sugai
•
3K vues
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
Yasuyuki Sugai
•
6.4K vues
第三回デジタルガジェット祭り! LT「ペットとセンサー編」
Yasuyuki Sugai
•
1.2K vues
AITCオープンラボ IoTx総まとめ「IoTxロボット・AI開発をはじめよう!」
Yasuyuki Sugai
•
2.9K vues
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Yasuyuki Sugai
•
31.4K vues
IoTとDeep Learningで自宅警備員を育ててみる
Yasuyuki Sugai
•
24.5K vues
IoTハンズオン勉強会 「センサーデータをクラウドに蓄積してみよう」
Yasuyuki Sugai
•
9.1K vues
IoT勉強会「IoTデバイス Intel Edison編」
Yasuyuki Sugai
•
4.9K vues
IoT勉強会「littleBitsとIFTTTで超お手軽IoTクッキング」
Yasuyuki Sugai
•
4.7K vues
IoT勉強会「とりあえずIoT的なものを作ってみた ~センサーデータの測定・収集・蓄積・分析・出力まで~」
Yasuyuki Sugai
•
8.4K vues
AITCクラウド部会 2014年度 これまでの振り返りとこれから
Yasuyuki Sugai
•
786 vues
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
Yasuyuki Sugai
•
10.5K vues
気象庁XMLのSPARQL APIを利用してデータを俯瞰しよう -SPARQLとRによる可視化-
Yasuyuki Sugai
•
4K vues
Hack For Japan 気象データ勉強会
Yasuyuki Sugai
•
2.6K vues
Yahoo Open Hack Day Japan 2
Yasuyuki Sugai
•
1.1K vues
Vagrant勉強会 チュートリアル編
Yasuyuki Sugai
•
1.8K vues
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
Yasuyuki Sugai
•
21.1K vues
Dernier
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
57 vues
•
20 diapositives
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
44 vues
•
38 diapositives
テスト自動化.pdf
ssuserf8ea02
29 vues
•
26 diapositives
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
145 vues
•
12 diapositives
IGDA Japan SIG Audio #20-1 室内・野外でのマイク収録と整音.pdf
IGDA Japan SIG-Audio
115 vues
•
31 diapositives
インフラチームとCCoEの関係.pptx
ssuser5c7ee4
20 vues
•
18 diapositives
Dernier
(14)
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
•
57 vues
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
•
44 vues
テスト自動化.pdf
ssuserf8ea02
•
29 vues
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
•
145 vues
IGDA Japan SIG Audio #20-1 室内・野外でのマイク収録と整音.pdf
IGDA Japan SIG-Audio
•
115 vues
インフラチームとCCoEの関係.pptx
ssuser5c7ee4
•
20 vues
ヒアラブルデバイスにおける音漏れ信号を用いた空中ジェスチャ認識
sugiuralab
•
5 vues
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
•
164 vues
2023情報処理学会関西支部大会-G12.pdf
KoseiShimoda1
•
7 vues
磁石内臓イヤリングによる磁力変化を利用したジェスチャ識別
sugiuralab
•
7 vues
画像生成AIの問題点
iPride Co., Ltd.
•
10 vues
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
•
118 vues
GraphQLはどんな時に使うか
Yutaka Tachibana
•
14 vues
CatBoost on GPU のひみつ
Takuji Tahara
•
548 vues
rChartsによるインタラクティブな可視化表現
1.
rChartsによるインタラクティブな 可視化表現 -RとJavaScript 夢の共演編- 第37回R勉強会@東京(#TokyoR) 2014/03/29
2.
自己紹介 •菅井康之 @y_sugawi • •趣味:テクノロジー的な事ならなんでも • 酒席での与太話 • 勉強会等でのお友達作り https://www.facebook.com/yasuyuki.sugai
3.
そもそもrChartsって・・・何? •Rで処理したデータをJavaScriptの ライブラリを利用して可視化するR ライブラリ ★JavaScriptとRのデータを組み込ん だHTMLファイルを出力する ★(基本的には)描画は JavaScriptのライブラリ任せ http://ramnathv.github.io/rCharts/
4.
何が嬉しいの? •Web技術を利用したインタラクティブな 可視化表現が行える ★HTML5によって、Web上での表現力が 格段にアップ!(SVG/CANVAS/WebGL) ★いつでもどこでも誰でも参照可能(ブ ラウザさえあれば)※一部IEを除く ★静的な画像ではなく、人の操作 によってデータを探索的に扱える
5.
サポートするJavaScriptライブラリ •Highcharts( ) •NVD3( ) •Polychart( ) •Morris( ) •Rickshaw( ) •xCharts( ) •Vega( ) •Leaflet( ) •Dimple( ) http://www.highcharts.com/ http://nvd3.org/ http://www.polychartjs.com/ http://www.oesmith.co.uk/morris.js/ http://code.shutterstock.com/rickshaw/ http://tenxer.github.io/xcharts/ http://trifacta.github.io/vega/ http://leafletjs.com/ http://dimplejs.org/ ※ライセンスに注意!!
6.
どれを使えばいいの?? •用途によってJavaScriptのライブラリの特性を踏 まえて使い分ける ★ rChartsの呼び出す関数によってJavaScript のライブラリが振り分けられる •どのJavaScriptライブラリも基本的なグラフ(散布 図、折れ線、棒、積み上げ、円、ヒストグラム、 etc...)は描画可能(何が出来るかは個別に参照) •個人的に良く使うのは。。。 ★ Highcharts ★
NVD3(D3.jsをベース)
7.
rChartsデモ準備 ★rChartsのインストール&ロード if (!require(rCharts)) { if
(!require(devtools)) { install.packages("devtools") require(devtools) } install_github("rCharts", "ramnathv") require(rCharts) }
8.
Highchartsデモ • Highchartsで可視化してみる ★irisの散布図をプロット デフォルトでグループのフィルタが可能 ★ hPlot(Petal.Length ~
Petal.Width, data = iris, type = "scatter", group = "Species")
9.
Highchartsデモ • Highchartsの機能を使ってみる • JavaScriptのライブラリへのパラメータ値を 変更する事が可能 ★irisの散布図をプロット +マウスで選択した範囲を拡大 +画像形式でダウンロード • p<-hPlot(Petal.Length
~ Petal.Width, data = iris, type = "scatter", group = "Species") p$chart(zoomType="xy") p$exporting(enabled = T) p
10.
NVD3デモ • NVD3で可視化してみる ★irisの散布図をプロット デフォルトでグループのフィルタが可能 ★ nPlot(Petal.Length ~
Petal.Width, data = iris, type = "scatterChart", group = "Species")
11.
NVD3デモ • NVD3の機能を使ってみる JavaScriptのライブラリへのパラメータ 値を変更する事が可能 ★irisの散布図をプロット +軸の出力形式を変更 • p<-nPlot(Petal.Length ~
Petal.Width, data = iris, type = "scatterChart", group = "Species") p$chart(showDistX = TRUE, showDistY = TRUE) p$xAxis(axisLabel="Petal.Length") p$yAxis(axisLabel="Petal.Width") p
12.
HighChartsとNVD3比較 •HighChartsの方が安定して動作 •NVD3は挙動が不安定・・・ •ライセンス面ではHighChartsは営 利目的の場合は有償 •NVD3はApache2ライセンス、 d3.jsはBSDライセンスで あり、商用利用可能
13.
HighChartsとNVD3比較 •実はもっと大事な所が・・・
14.
HighChartsとNVD3比較 •出力されたソースを見比べると・・・ "yAxis": [ { "title": { "text":
"Petal.Length" } } ], "series": [ { "data": [ [ 0.1, 1.1 ], :(省略) [ 0.6, 1.6 ] ], "name": "setosa", "type": "scatter", "marker": { "radius": 3 } }, data = [ { "Sepal.Length": 5.1, "Sepal.Width": 3.5, "Petal.Length": 1.4, "Petal.Width": 0.2, "Species": "setosa" }, { "Sepal.Length": 4.9, "Sepal.Width": 3, "Petal.Length": 1.4, "Petal.Width": 0.2, "Species": "setosa" }, { "Sepal.Length": 4.7, "Sepal.Width": 3.2, "Petal.Length": 1.3, "Petal.Width": 0.2, "Species": "setosa" },Highcharts NVD3
15.
HighChartsとNVD3比較 •HighChartsはグラフ描画に特化してデータ を保持するため、最低限グラフ 描画に必要なデータ以外は破棄 されてしまう •NVD3はd3.jsをベースとしているため、データド リブンの思想によりデータとグラフ描画は切 り離されている Rから渡した基のデータをそのまま保持してい る
16.
HighChartsとNVD3比較 •NVD3ならこんなことが可能 •散布図のあるポイントに対して、付加情報を 表示することでより情報量を増やす • p<-nPlot(Petal.Length ~ Petal.Width,
data = iris, type = "scatterChart", group = "Species") p$chart(showDistX = TRUE, showDistY = TRUE) p$xAxis(axisLabel="Petal.Length") p$yAxis(axisLabel="Petal.Width") p$chart(tooltipContent = "#! function(key, x, y, e, graph){ return 'Sepal.Length: ' + e.point['Sepal.Length'] + ', Sepal.Width: ' + e.point['Sepal.Width']; } !#") p
17.
HighChartsとNVD3比較 •かなり不安定だけど個人的には NVD3がおすすめ(用途にもよるけど)
18.
NVD3編 •インタラクティブ感をもっと味わって みましょ
19.
NVD3 時系列データ編 •いい感じのデータが無かったので、 •ちょっと前処理 •#東京電力が公開している2013年の電力使用量を取得 tmp<-readLines("http://www.tepco.co.jp/forecast/html/images/juyo-2013.csv") electric<-read.csv(textConnection(tmp), header=F,
skip=3) names(electric) <- c("date", "time", "value") electric<-transform(electric, date=as.Date(date)) #1時間毎のデータから日のピーク値を算出 electric2<-aggregate(electric$value, list(electric$date), max) names(electric2)<-c("date", "value")
20.
NVD3 時系列データ編 •1年のデータを折れ線でプロット •NVD3の機能を利用して日付範 囲を任意に変更可能に • p <-
nPlot(value ~ date, data = electric2, type = 'lineWithFocusChart') p$xAxis( tickFormat="#!function(d) { return d3.time.format('%m/%d')(new Date( d * 86400000 )); }!#" ) p$x2Axis( tickFormat="#!function(d) { return d3.time.format('%b')(new Date( d * 86400000 )); }!#" ) p$chart(tooltipContent = "#! function(key, x, y, e, graph){ return 'date: ' + d3.time.format('%Y/%m/%d')(new Date( e.point.date * 86400000 )); } !#") p$set(width=1000, height=500) p
21.
NVD3 時系列データ編 •プロットしただけだと・・・ やたらと変動しているのは何故だろう?
22.
NVD3 時系列データ編 •日付範囲を絞り込んでみると・・・ 平日と土日の違いということが判明 この例だと、土日は企業や工場がお休みだから 平日と土日は分けて考えないといけないな∼とか。
23.
NVD3 相関分析編 •(時間も無いので割愛。。。) • 回帰直線も(ちょっと頑張ったけど...)
24.
rCharts Tips •rChartsでプロットしているファイル をそのままGISTに投稿可能 •投稿するとURLがプロンプトに出 力されるので、そのまま共有 •R Markdownにも組み込み可能 p<-nPlot(Petal.Length
~ Petal.Width, data = iris, type = "scatterChart", group = "Species") p$publish('title', host='gist')
25.
rCharts Tips •テンプレートとなるHTMLやJavaScriptを自分で実 装する事でより柔軟な表現、インタラクションを加 えることが可能 •アメリカ大統領選における勝利までの512のシ ナリオ •ギャップマインダー財団データのモーションチャート •国別にX軸:収入(一人当たり),Y軸:平均寿命 •円の大きさ:人口 • http://timelyportfolio.github.io/rCharts_512paths/ http://bl.ocks.org/psychemedia/raw/7199905/
26.
rCharts Tips •困ったら・・・ •出力されるソースを見て何がいけ てないのか調べる •JavaScriptのライブラリのサイト を見てお勉強しましょ
27.
•Let’s have Fun!!
:) •
28.
•fin...Zzz...zzz...