O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
可視化周辺の進化がヤヴァイ
2016
〜Plotlyを中⼼として〜
Tokyo.R#55
2016-07-30
@kashitan
> summary(kashitan)
• TwitterID : @kashitan
• お仕事 : 某通信会社
2
Rは可視化ツール
https://www.r-project.org
可視化に関する過去の発表
2013-06-01
第31回 R勉強会@東京
2010-06-26
第6回 R勉強会@東京
2015-02-21
第46回 R勉強会@東京
htmlwidgets多すぎ
主要ライブラリの⽐較
⼤分類 グラフ Plotly rbokeh highcharter
基本グラフ
折れ線グラフ ○ ○ ○
バブルチャート ○ × ?
散布図 ○ ○ ○
ヒートマップ ○ × ○
棒グラフ ○ × ○
⾯グラフ ○ × ○...
圧倒的⼈気
でも
アカウント登録が
必要でしょう?
オープンソース化
されました!
(アカウント不要)
※highcharts.jsは商⽤利⽤だと有償
•plotlyデモ
•plotlyによるグラフの作成
•plotlyグラフの調整
可視化のサンプルデータ
• 東京都知事選挙候補者の中3名のTweetデータ
⼩池 百合⼦
209,760
2,740
⿃越 俊太郎
159,788
541
増⽥寛也
6,476
265
(敬称略)
フォロワー数
ツイート数
可視化のサンプルデータ
• 東京都知事選挙候補者3名のTweetデータ
name id created favorite retweet
⼩池百合⼦ 759032551348457472 2016-07-29 23:27:17 184 152
...
•plotlyデモ
•plotlyによるグラフの作成
•plotlyグラフの調整
デモ
https://code-estrellita.net/tokyo_election_2016.html
•plotlyデモ
•plotlyによるグラフの作成
•plotlyグラフの調整
折れ線グラフ
df %>%
mutate(date=as.Date(created)) %>%
group_by(name, date) %>%
summarise(n=n()) %>%
plot_ly(x=date, y=n, color=n...
折れ線グラフ
バブルチャート
df %>%
mutate(date=as.Date(created)) %>%
group_by(name, date) %>%
summarise(n=n(), retweet=sum(retweetCount)) %>%
...
バブルチャート
散布図
df %>%
plot_ly(x=favoriteCount, y=retweetCount, color=name,
type="scatter", mode="markers")
type = “scatter”
mode = “m...
散布図
ヒートマップ
df %>%
filter(screenName == "ecoyuri") %>%
mutate(date=as.Date(created),
hour=hour(created)) %>%
group_by(date, hour...
ヒートマップ
棒グラフ(1/3)
df %>%
group_by(name) %>%
summarise(n=n()) %>%
plot_ly(x=name, y=n, type="bar")
type = “bar”を指定
棒グラフ(1/3)
棒グラフ(2/3)
df %>%
group_by(name) %>%
summarise(favorite=sum(favoriteCount),
retweet=sum(retweetCount)) %>%
plot_ly(x=name, ...
棒グラフ(2/3)
棒グラフ(3/3)
df %>%
group_by(name) %>%
summarise(favorite=sum(favoriteCount),
retweet=sum(retweetCount)) %>%
plot_ly(x=name, ...
棒グラフ(3/3)
⾯グラフ
df %>%
mutate(date=as.Date(created)) %>%
group_by(name, date) %>%
summarise(n=n()) %>%
plot_ly(x=date, y=n, fill="toze...
⾯グラフ
円グラフ(1/2)
df %>%
filter(screenName == "ecoyuri") %>%
summarise(favorite = sum(favoriteCount),
retweet = sum(retweetCount)) ...
円グラフ(1/2)
円グラフ(2/2)
df %>%
filter(screenName == "ecoyuri") %>%
summarise(favorite = sum(favoriteCount),
retweet = sum(retweetCount)) ...
円グラフ(2/2)
ヒストグラム
df %>%
mutate(date=as.Date(created)) %>%
group_by(name, date) %>%
summarise(n=n()) %>%
plot_ly(x=n, type="histogram...
ヒストグラム
箱ひげ図
df %>%
mutate(date=as.Date(created)) %>%
group_by(name, date) %>%
summarise(n=n()) %>%
plot_ly(x=n, type="box", color...
箱ひげ図
•plotlyデモ
•plotlyによるグラフの作成
•plotlyグラフの調整
グラフタイトル
df %>%
plot_ly(x=favoriteCount, y=retweetCount, color=name,
type="scatter", mode="markers") %>%
layout(title="corr...
グラフタイトル
x/y軸ラベル
df %>%
plot_ly(x=favoriteCount, y=retweetCount, color=name,
type="scatter", mode="markers") %>%
layout(title="corr...
x/y軸ラベル
凡例を消す
df %>%
plot_ly(x=favoriteCount, y=retweetCount, color=name,
type="scatter", mode="markers") %>%
layout(title="correl...
凡例を消す
凡例の位置を指定する
df %>%
plot_ly(x=favoriteCount, y=retweetCount, color=name,
type="scatter", mode="markers") %>%
layout(title="c...
凡例の位置を指定する
⾊を変える
df %>%
filter(screenName == "ecoyuri") %>%
mutate(date=as.Date(created),
hour=hour(created)) %>%
group_by(date, hour)...
⾊を変える
2軸グラフを作る
df %>%
filter(screenName == "ecoyuri") %>%
mutate(date = as.Date(created),
ratio = retweetCount/favoriteCount) %>%...
2軸グラフを作る
ggplotをインタラクティブに
library(ggplot2)
p <- df %>%
ggplot(aes(x = favoriteCount, y = retweetCount)) +
geom_point(aes(text = pas...
ggplotをインタラクティブに
その他のチャート
チートシート
https://images.plot.ly/plotly-documentation/images/r_cheat_sheet.pdf
まとめ
•plotlyデモ
•plotlyによるグラフの作成
•plotlyグラフの調整
おまけ
各候補者と単語の対応分析
各候補者と単語の共起ネットワーク
可視化周辺の進化がヤヴァイ 〜2016〜
Próximos SlideShares
Carregando em…5
×

可視化周辺の進化がヤヴァイ 〜2016〜

5.828 visualizações

Publicada em

第55回 R勉強会@東京 発表資料

Publicada em: Dados e análise

可視化周辺の進化がヤヴァイ 〜2016〜

  1. 1. 可視化周辺の進化がヤヴァイ 2016 〜Plotlyを中⼼として〜 Tokyo.R#55 2016-07-30 @kashitan
  2. 2. > summary(kashitan) • TwitterID : @kashitan • お仕事 : 某通信会社 2
  3. 3. Rは可視化ツール https://www.r-project.org
  4. 4. 可視化に関する過去の発表 2013-06-01 第31回 R勉強会@東京 2010-06-26 第6回 R勉強会@東京 2015-02-21 第46回 R勉強会@東京
  5. 5. htmlwidgets多すぎ
  6. 6. 主要ライブラリの⽐較 ⼤分類 グラフ Plotly rbokeh highcharter 基本グラフ 折れ線グラフ ○ ○ ○ バブルチャート ○ × ? 散布図 ○ ○ ○ ヒートマップ ○ × ○ 棒グラフ ○ × ○ ⾯グラフ ○ × ○ 円グラフ ○ × ○ 統計グラフ ヒストグラム ○ ○ ○ 箱ひげ図 ○ ○ ○
  7. 7. 圧倒的⼈気
  8. 8. でも アカウント登録が 必要でしょう?
  9. 9. オープンソース化 されました! (アカウント不要) ※highcharts.jsは商⽤利⽤だと有償
  10. 10. •plotlyデモ •plotlyによるグラフの作成 •plotlyグラフの調整
  11. 11. 可視化のサンプルデータ • 東京都知事選挙候補者の中3名のTweetデータ ⼩池 百合⼦ 209,760 2,740 ⿃越 俊太郎 159,788 541 増⽥寛也 6,476 265 (敬称略) フォロワー数 ツイート数
  12. 12. 可視化のサンプルデータ • 東京都知事選挙候補者3名のTweetデータ name id created favorite retweet ⼩池百合⼦ 759032551348457472 2016-07-29 23:27:17 184 152 ⼩池百合⼦ 759021573537878016 2016-07-29 22:43:39 177 178 ⼩池百合⼦ 759021527157252096 2016-07-29 22:43:28 155 171 ⼩池百合⼦ 759021455807873024 2016-07-29 22:43:11 144 163 ⼩池百合⼦ 759021109580750849 2016-07-29 22:41:49 153 163 ⼩池百合⼦ 759013802167848961 2016-07-29 22:12:46 209 194 ⼩池百合⼦ 759013745624440832 2016-07-29 22:12:33 211 191 ⼩池百合⼦ 759013630452965376 2016-07-29 22:12:05 225 196 ⼩池百合⼦ 758959413692538881 2016-07-29 18:36:39 318 208
  13. 13. •plotlyデモ •plotlyによるグラフの作成 •plotlyグラフの調整
  14. 14. デモ https://code-estrellita.net/tokyo_election_2016.html
  15. 15. •plotlyデモ •plotlyによるグラフの作成 •plotlyグラフの調整
  16. 16. 折れ線グラフ df %>% mutate(date=as.Date(created)) %>% group_by(name, date) %>% summarise(n=n()) %>% plot_ly(x=date, y=n, color=name, type="scatter", mode="lines") type = “scatter” mode = “lines”を指定
  17. 17. 折れ線グラフ
  18. 18. バブルチャート df %>% mutate(date=as.Date(created)) %>% group_by(name, date) %>% summarise(n=n(), retweet=sum(retweetCount)) %>% plot_ly(x=date, y=n, color=name, type="scatter", mode="markers", size=retweet) type = “scatter” mode = “markers” sizeを指定
  19. 19. バブルチャート
  20. 20. 散布図 df %>% plot_ly(x=favoriteCount, y=retweetCount, color=name, type="scatter", mode="markers") type = “scatter” mode = “markers”を指定
  21. 21. 散布図
  22. 22. ヒートマップ df %>% filter(screenName == "ecoyuri") %>% mutate(date=as.Date(created), hour=hour(created)) %>% group_by(date, hour) %>% summarise(n=n()) %>% plot_ly(x=hour, y=date, z=n, type="heatmap") type = “heatmap”を指定
  23. 23. ヒートマップ
  24. 24. 棒グラフ(1/3) df %>% group_by(name) %>% summarise(n=n()) %>% plot_ly(x=name, y=n, type="bar") type = “bar”を指定
  25. 25. 棒グラフ(1/3)
  26. 26. 棒グラフ(2/3) df %>% group_by(name) %>% summarise(favorite=sum(favoriteCount), retweet=sum(retweetCount)) %>% plot_ly(x=name, y=favorite, type="bar", name="favorite") %>% add_trace(x=name, y=retweet, type="bar", name="retweet") add_trace()で系列を追加
  27. 27. 棒グラフ(2/3)
  28. 28. 棒グラフ(3/3) df %>% group_by(name) %>% summarise(favorite=sum(favoriteCount), retweet=sum(retweetCount)) %>% plot_ly(x=name, y=favorite, type="bar", name="favorite") %>% add_trace(x=name, y=retweet, type="bar", name="retweet") %>% layout(barmode="stack") barmode=“stack”で 積み上げ棒グラフ
  29. 29. 棒グラフ(3/3)
  30. 30. ⾯グラフ df %>% mutate(date=as.Date(created)) %>% group_by(name, date) %>% summarise(n=n()) %>% plot_ly(x=date, y=n, fill="tozeroy", color=name) fill=“tozeroy”を指定
  31. 31. ⾯グラフ
  32. 32. 円グラフ(1/2) df %>% filter(screenName == "ecoyuri") %>% summarise(favorite = sum(favoriteCount), retweet = sum(retweetCount)) %>% plot_ly(labels=colnames(.), values=c(favorite, retweet), type="pie") labels, values, type=“pie”を指定
  33. 33. 円グラフ(1/2)
  34. 34. 円グラフ(2/2) df %>% filter(screenName == "ecoyuri") %>% summarise(favorite = sum(favoriteCount), retweet = sum(retweetCount)) %>% plot_ly(labels=colnames(.), values=c(favorite, retweet), type="pie", hole = 0.6) holeを指定するとドーナツグラフ
  35. 35. 円グラフ(2/2)
  36. 36. ヒストグラム df %>% mutate(date=as.Date(created)) %>% group_by(name, date) %>% summarise(n=n()) %>% plot_ly(x=n, type="histogram", color=name) type=“histogram”を指定
  37. 37. ヒストグラム
  38. 38. 箱ひげ図 df %>% mutate(date=as.Date(created)) %>% group_by(name, date) %>% summarise(n=n()) %>% plot_ly(x=n, type="box", color=name) type=“box”を指定
  39. 39. 箱ひげ図
  40. 40. •plotlyデモ •plotlyによるグラフの作成 •plotlyグラフの調整
  41. 41. グラフタイトル df %>% plot_ly(x=favoriteCount, y=retweetCount, color=name, type="scatter", mode="markers") %>% layout(title="correlation of favorite and retweet") layout()内で指定
  42. 42. グラフタイトル
  43. 43. x/y軸ラベル df %>% plot_ly(x=favoriteCount, y=retweetCount, color=name, type="scatter", mode="markers") %>% layout(title="correlation of favorite and retweet", xaxis=list(title="favorite"), yaxis=list(title="retweet")) xaxis=list(title=“”), yaxis=list(title=“”)で指定
  44. 44. x/y軸ラベル
  45. 45. 凡例を消す df %>% plot_ly(x=favoriteCount, y=retweetCount, color=name, type="scatter", mode="markers") %>% layout(title="correlation of favorite and retweet", xaxis=list(title="favorite"), yaxis=list(title="retweet"), showlegend=FALSE) showlegend=FALSEで凡例なし
  46. 46. 凡例を消す
  47. 47. 凡例の位置を指定する df %>% plot_ly(x=favoriteCount, y=retweetCount, color=name, type="scatter", mode="markers") %>% layout(title="correlation of favorite and retweet", xaxis=list(title="favorite"), yaxis=list(title="retweet"), legend=list(x=0.1, y=0.7)) legend=list(x=, y=)で 位置を指定(0から1の範囲)
  48. 48. 凡例の位置を指定する
  49. 49. ⾊を変える df %>% filter(screenName == "ecoyuri") %>% mutate(date=as.Date(created), hour=hour(created)) %>% group_by(date, hour) %>% summarise(n=n()) %>% plot_ly(x=hour, y=date, z=n, type="heatmap", colors="Spectral") colorsでRColorBrewerの カラーパレット名を指定する
  50. 50. ⾊を変える
  51. 51. 2軸グラフを作る df %>% filter(screenName == "ecoyuri") %>% mutate(date = as.Date(created), ratio = retweetCount/favoriteCount) %>% group_by(name, date) %>% summarise(n=n(), ratio=mean(ratio)) %>% plot_ly(x=date, y=n, type="bar", name="n") %>% add_trace(x=date, y=ratio, name="ratio", yaxis="y2") %>% layout(yaxis2=list(overlaying="y",side="right")) yaxis2=list(overlaying="y",side="right ")を指定する
  52. 52. 2軸グラフを作る
  53. 53. ggplotをインタラクティブに library(ggplot2) p <- df %>% ggplot(aes(x = favoriteCount, y = retweetCount)) + geom_point(aes(text = paste("Name:", name)), size = 4) + geom_smooth(aes(colour = name, fill = name)) + facet_wrap(~ name) ggplotly(p) ggplotly()でラップするだけ
  54. 54. ggplotをインタラクティブに
  55. 55. その他のチャート
  56. 56. チートシート https://images.plot.ly/plotly-documentation/images/r_cheat_sheet.pdf
  57. 57. まとめ
  58. 58. •plotlyデモ •plotlyによるグラフの作成 •plotlyグラフの調整
  59. 59. おまけ
  60. 60. 各候補者と単語の対応分析
  61. 61. 各候補者と単語の共起ネットワーク

×