Tokyor15mod

1,639
-1

Published on

tokyor#15, presentation

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,639
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
37
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Tokyor15mod

  1. 1. シリーズRで可視化#1ggplot2とgoogleVisとhwriterでレポートを作る @dichika
  2. 2. みなさんはじめまして
  3. 3. 自己紹介・ @dichika・ 医療系・ バターデニッシュ
  4. 4. さて
  5. 5. 矢追純一からUFO目撃情報の レポートを 頼まれる、
  6. 6. そんな状況、あると思います
  7. 7. UFO目撃情報データベース
  8. 8. http://www.infochimps.com
  9. 9. さて、どうする?
  10. 10. 相手は専門家こっちは素人
  11. 11. まずはざっと概要をまとめて相手の洞察を引き出す
  12. 12. 今日は そんなつもりでレポートを作りたい と思います
  13. 13. データは以下の6項目
  14. 14. 目撃した日付報告した日付UFOの形状 目撃地域 目撃時間 詳細内容
  15. 15. 都合上3項目だけ使います
  16. 16. 目撃した日付報告した日付UFOの形状 目撃地域 目撃時間 詳細内容
  17. 17. 実例
  18. 18. 目撃した日付:2010/4/1 UFOの形状:triangle 目撃地域:Iowa City, IA
  19. 19. これを集計して 可視化
  20. 20. データクリーニング および 集計は 略(コードはどこかで公開します)
  21. 21. こんな結果に なります(ggplot2使用)
  22. 22. 目撃日付
  23. 23. 150 100count 50 1950 1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 year
  24. 24. UFOの形状
  25. 25. light triangle circle disk other unknown sphere fireball oval formationform cigar changing cylinder flash rectangle diamond chevron egg teardrop cone 0 2000 4000 6000 8000 10000 count
  26. 26. 目撃地域(トップ20)
  27. 27. California Washington Texas Florida New York Arizona Illinois Pennsylvania Ohio Michiganstate Oregon North Carolina Missouri Colorado New Jersey Indiana Georgia Massachusetts Wisconsin Virginia 0 1000 2000 3000 4000 5000 6000 7000 count
  28. 28. 人口が多いところは 目撃数が多い可能性があるので 補正
  29. 29. Washington Oregon Arizona Colorado California Missouri Indiana Wisconsin Illinois Michiganstate Florida Ohio Pennsylvania Massachusetts North Carolina New Jersey Texas New York Virginia Georgia 0 10 20 30 40 per100000
  30. 30. とりあえずこの結果を ちゃちゃっとWordとかに貼り付けてコメントを書けば レポートにはなる
  31. 31. でもそれでいいのか
  32. 32. 俺は 矢追さんの洞察をもっと引き出すべきで はないのか
  33. 33. 洞察←操作性
  34. 34. 矢追さんが グラフと向き合い実際にいじってみることで洞察を得られるようにする
  35. 35. そこでgoogleVis + hwriterという提案
  36. 36. googleVis・ Google Visualization APIをRから 使えるようにしたパッケージ・ 出力はHTML・ 16種類のグラフ・ demo(googleVis)で内容確認
  37. 37. 目撃日付(gvisAnnotatedTimeline)
  38. 38. gvisAnnotatedTimeline関数時系列の線グラフ拡大縮小自由自在gvisAnnotatedTimeline( data, データフレーム 日付の入った datevar, 変数を指定 numvar, 数値の入った 変数を指定 date.format) 日付のフォー マットを指定
  39. 39. UFOの形状(gvisPieChart)
  40. 40. gvisPieChart関数円グラフgvisPieChart( data, データフレーム ラベルの入った labelvar, 変数を指定 numvar) 変数を指定 数値の入った
  41. 41. グループ分けすると (gvisTreeMap)
  42. 42. gvisTreeMap関数入れ子になった構造を面積図で表現gvisTreeMap( data, データフレーム ラベルの入った変数を指定 idvar, それぞれの親階層の入った parentvar, 変数を指定 sizebar) 変数を指定 数値の入った※データ構造はRegionsデータを見るとわかりやすい
  43. 43. 目撃地域(gvisGeoMap)
  44. 44. gvisGeoMap関数入れ子になった構造を面積図で表現gvisGeoMap( data, データフレーム 地域ラベルの入った locationvar, 変数を指定 numvar) 変数を指定数値の入った※地域を限定したい場合はoptionで指定(ヘルプ参照のこと)
  45. 45. これをレポートに まとめる
  46. 46. hwriter・ HTML出力を楽にするパッケージ・ hwriteが基本関数・ example(hwriter)で説明書
  47. 47. hwrite関数HTMLを出力する関数画像にはhwriteImage関数hwrite(x, page) x → 出力したいモノ page → 出力先※出力先を指定しないとコンソールにHTMLが文字列として出力される
  48. 48. 例えばこんな感じ
  49. 49. p <- openPage("report.html") charset="CP932")hwrite("目撃日付", p, br=TRUE)hwriteImage("year.png", p , br=TRUE)closePage(p)
  50. 50. ファイルへの接続 + 文字コードの設定 (デフォルトはutf-8)p <- openPage("report.html", charset="CP932")hwrite("目撃日付", p, br=TRUE)hwriteImage("year.png", p , br=TRUE)closePage(p) 接続を 閉じる
  51. 51. p <- openPage("report.html") charset="CP932")hwrite("目撃日付", p, br=TRUE)hwriteImage("year.png", p , br=TRUE)closePage(p) 改行 オプション
  52. 52. googleVisの出力は HTML ↓ 今回はインラインフレームで 読み込む
  53. 53. path <- "C:/Users/dichika/hoge.html"frame <- paste(<iframe src=", path, "frameborder="0" width="1200"height="600" scrolling="no"></iframe>,sep="") iframeタグ で挟んだhwrite(frame, p, br=TRUE)
  54. 54. 組み合わせて 出力すると こうなる
  55. 55. でも
  56. 56. できれば矢追さんの洞察を書き込めるように しておきたい
  57. 57. そこでcontenteditable
  58. 58. contenteditable・ HTML5の仕様の一つ・ contenteditable="true"とすると 書き込み可能になる・ こんな感じ <div contenteditable="true">この領域に書き込めます</div>
  59. 59. 書き込めるようになる
  60. 60. これでひとまずは 完成
  61. 61. でも毎回 ごちゃごちゃ 指定するのはめんどくさいですよね
  62. 62. めんどくさい時は関数書きますよね
  63. 63. install.packages("batade")library(batade)mkhtml( ファイル名を指定 filename, data) レイアウト構造を 指定したデータフレーム
  64. 64. レイアウト構造本日のレポート LL目撃日付 LAnnotatedTimeLineIDe41ecf.htm Lここにコメントを書き込めます Scopyright batade L
  65. 65. レイアウト構造本日のレポート LL目撃日付 LAnnotatedTimeLineIDe41ecf.htm 文字列、画像/HTMLファイル名を指定 Lここにコメントを書き込めます Scopyright batade L
  66. 66. レイアウト構造本日のレポート LL目撃日付 LAnnotatedTimeLineIDe41ecf. 文字サイズを指定htm L (画像、HTMLの場合は無視される) S,M,L,LLの4サイズここにコメントを書き込めます Scopyright batade L
  67. 67. こういう出力に なります
  68. 68. ということで
  69. 69. まとめ・ ggplot2 → かませ犬・ googleVis → 操作性のあるグラフ・ hwriter → HTML出力・ contenteditable → ブラウザ上で レポートが編集可能に・ batedeライブラリ → 実在する
  70. 70. enjoy!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×