SlideShare a Scribd company logo
1 of 77
Download to read offline
シリーズRで可視化#1
ggplot2と
googleVisと
hwriterで
レポートを作る
           @dichika
みなさん
はじめまして
自己紹介
・ @dichika
・ 医療系
・ バターデニッシュ
さて
矢追純一から
UFO目撃情報の
  レポートを
  頼まれる、
そんな状況、
あると思います
UFO目撃情報
データベース
http://www.infochimps.com
さて、どうする?
相手は専門家
こっちは素人
まずは
ざっと概要をまとめて
相手の洞察を引き出す
今日は
 そんなつもりで
レポートを作りたい
  と思います
データは
以下の6項目
目撃した日付
報告した日付
UFOの形状
 目撃地域
 目撃時間
 詳細内容
都合上
3項目だけ使います
目撃した日付
報告した日付
UFOの形状
 目撃地域
 目撃時間
 詳細内容
実例
目撃した日付:2010/4/1
  UFOの形状:triangle
 目撃地域:Iowa City, IA
これを集計して
  可視化
データクリーニング
   および
   集計は
    略
(コードはどこかで公開します)
こんな結果に
   なります
(ggplot2使用)
目撃日付
150




        100
count




         50




              1950   1955   1960   1965   1970   1975   1980   1985   1990   1995   2000   2005   2010
                                                    year
UFOの形状
light

        triangle

          circle

            disk

           other
         unknown

          sphere

        fireball

            oval

       formation
form




           cigar

        changing

        cylinder

           flash

       rectangle

         diamond

         chevron

             egg

        teardrop

            cone



                   0   2000   4000           6000   8000   10000
                                     count
目撃地域
(トップ20)
California

            Washington

                 Texas

               Florida

              New York
               Arizona

              Illinois

          Pennsylvania

                  Ohio

              Michigan
state




                Oregon

        North Carolina

              Missouri

              Colorado

            New Jersey

               Indiana

               Georgia

         Massachusetts

             Wisconsin

              Virginia



                         0   1000   2000      3000   4000   5000   6000   7000
                                           count
人口が多いところは
 目撃数が多い
可能性があるので
   補正
Washington

                Oregon

               Arizona

              Colorado

            California
              Missouri

               Indiana

             Wisconsin

              Illinois

              Michigan
state




               Florida

                  Ohio

          Pennsylvania

         Massachusetts

        North Carolina

            New Jersey

                 Texas

              New York

              Virginia

               Georgia



                         0   10           20   30   40
                                  per100000
とりあえずこの結果を
 ちゃちゃっとWordとかに
貼り付けてコメントを書けば
   レポートにはなる
でも
それでいいのか
俺は
 矢追さんの洞察を
もっと引き出すべきで
   はないのか
洞察←操作性
矢追さんが
  グラフと向き合い
実際にいじってみることで
洞察を得られるようにする
そこで
googleVis
   +
 hwriter
という提案
googleVis
・ Google Visualization APIをRから
  使えるようにしたパッケージ
・ 出力はHTML
・ 16種類のグラフ
・ demo(googleVis)で内容確認
目撃日付
(gvisAnnotatedTimeline)
gvisAnnotatedTimeline関数
時系列の線グラフ
拡大縮小自由自在
gvisAnnotatedTimeline(
 data,    データフレーム

               日付の入った
 datevar,       変数を指定


 numvar,    数値の入った
            変数を指定

 date.format) 日付のフォー
                  マットを指定
UFOの形状
(gvisPieChart)
gvisPieChart関数

円グラフ
gvisPieChart(
 data,     データフレーム

                ラベルの入った
 labelvar,       変数を指定


 numvar) 変数を指定
             数値の入った
グループ分けすると
 (gvisTreeMap)
gvisTreeMap関数

入れ子になった構造を面積図で表現
gvisTreeMap(
 data,   データフレーム

              ラベルの入った変数を指定
 idvar,
                それぞれの親階層の入った
 parentvar,         変数を指定


 sizebar) 変数を指定
            数値の入った

※データ構造はRegionsデータを見るとわかりやすい
目撃地域
(gvisGeoMap)
gvisGeoMap関数

入れ子になった構造を面積図で表現
gvisGeoMap(
 data,    データフレーム
                   地域ラベルの入った
 locationvar,        変数を指定


 numvar) 変数を指定数値の入った

※地域を限定したい場合はoptionで指定(ヘルプ参照のこと)
これをレポートに
  まとめる
hwriter
・ HTML出力を楽にするパッケージ
・ hwriteが基本関数
・ example(hwriter)で説明書
hwrite関数
HTMLを出力する関数
画像にはhwriteImage関数

hwrite(x, page)
 x → 出力したいモノ
 page → 出力先
※出力先を指定しないとコンソールにHTMLが文字列として出力される
例えばこんな感じ
p <- openPage("report.html")
                charset="CP932")
hwrite("目撃日付", p, br=TRUE)
hwriteImage("year.png", p , br=TRUE)
closePage(p)
ファイルへの接続
                               +
                          文字コードの設定
                          (デフォルトはutf-8)


p <- openPage("report.html",
                charset="CP932")
hwrite("目撃日付", p, br=TRUE)
hwriteImage("year.png", p , br=TRUE)
closePage(p)
               接続を
               閉じる
p <- openPage("report.html")
                charset="CP932")
hwrite("目撃日付", p, br=TRUE)
hwriteImage("year.png", p , br=TRUE)
closePage(p)                      改行
                                オプション
googleVisの出力は
      HTML
       ↓
     今回は
インラインフレームで
    読み込む
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)
組み合わせて
 出力すると
  こうなる
でも
できれば
矢追さんの洞察を
書き込めるように
 しておきたい
そこで
contenteditable
contenteditable
・ HTML5の仕様の一つ
・ contenteditable="true"とすると
  書き込み可能になる
・ こんな感じ
  <div contenteditable="true">この領域に書き込めます</div>
書き込める
ようになる
これでひとまずは
   完成
でも毎回
  ごちゃごちゃ
  指定するのは
めんどくさいですよね
めんどくさい時は
関数書きますよね
install.packages("batade")
library(batade)
mkhtml(
                ファイル名を指定
  filename,
  data)      レイアウト構造を
            指定したデータフレーム
レイアウト構造
本日のレポート                      LL

目撃日付                         L

AnnotatedTimeLineIDe41ecf.
htm                          L


ここにコメントを書き込めます               S


copyright batade             L
レイアウト構造
本日のレポート                      LL

目撃日付                         L

AnnotatedTimeLineIDe41ecf.
htm
 文字列、画像/HTMLファイル名を指定         L


ここにコメントを書き込めます               S


copyright batade             L
レイアウト構造
本日のレポート                             LL

目撃日付                                 L

AnnotatedTimeLineIDe41ecf.        文字サイズを指定
htm                                      L
                             (画像、HTMLの場合は無視される)
                                 S,M,L,LLの4サイズ


ここにコメントを書き込めます                       S


copyright batade                     L
こういう出力に
  なります
ということで
まとめ
・ ggplot2 → かませ犬
・ googleVis → 操作性のあるグラフ
・ hwriter → HTML出力
・ contenteditable → ブラウザ上で
  レポートが編集可能に
・ batedeライブラリ → 実在する
enjoy!

More Related Content

More from Daisuke Ichikawa (11)

Maeshori missing
Maeshori missingMaeshori missing
Maeshori missing
 
R25LT
R25LTR25LT
R25LT
 
Tokyor23
Tokyor23Tokyor23
Tokyor23
 
Tokyor20
Tokyor20Tokyor20
Tokyor20
 
Tokyor18
Tokyor18Tokyor18
Tokyor18
 
Tokyor17
Tokyor17Tokyor17
Tokyor17
 
Tokyor16
Tokyor16Tokyor16
Tokyor16
 
Saku110716
Saku110716Saku110716
Saku110716
 
世界のR(仮)
世界のR(仮)世界のR(仮)
世界のR(仮)
 
Tokyo r11caret
Tokyo r11caretTokyo r11caret
Tokyo r11caret
 
ggplot2できれいなグラフ
ggplot2できれいなグラフggplot2できれいなグラフ
ggplot2できれいなグラフ
 

Recently uploaded

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Recently uploaded (8)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

Tokyor15mod