SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
Hijiyama.R #4
2016/5/28
ggplot2用例集 入門編
紀ノ定 保礼
自己紹介
• 紀ノ定 保礼
– 大阪大学大学院人間科学研究科
• 関心領域
– 認知心理学,交通心理学,人間工学
• 本日の発表内容
– データを視覚化するためのRパッケージである,
ggplot2の使い方の紹介(実践編)
– まだ「ggplot2再入門」を読んでいない方は,先に
そちらを読まれることをおすすめします
» http://www.slideshare.net/yutannihilation/ggplo
t2-53851875
本発表のねらい
• これまでの解説
– 幅広く機能を説明するためのグラフ例が多い印象
– 必ずしも,“実際に”描きたいグラフではない?
• ggplot2は多機能であるがゆえに,微調整に迷うことも
• “実際よく使う”グラフのテンプレートがあってもいいかも
• 本発表
– (少なくとも心理学では)よく使われるグラフを例に
ggplot2の使い方を紹介
• 例:n要因デザインの実験で,各条件の平均値±1SEの範囲を
示したい
– 一種のチートシートになれば幸い
本日の到達目標
• データを知る
– データの特性を視覚化できるようになる
• 棒グラフ,散布図,箱ひげ図…
• データを伝える
– 作成したグラフを調整できるようになる
• 棒の色,文字サイズ,軸目盛…
– 発表スライドや論文に載せたいレイアウトに
仕上げるため
データの視覚化
ー変数間の関係をつかむー
こういう経験ありませんか
綺麗な正の相関!と思いきや… 階層データ!
要約統計量は
ほとんど同じでも…
実は全然違う分布!
http://ggplot2.org/
簡単に・多層的にデータを視覚化できる
重さ
質
(5水準)
色
(7水準)
透明度
(8水準)
価格
長さ(mm)
幅(mm)
奥行(mm)
• diamondsデータセットを用いて例示
– ggplot2パッケージに付属(53940行×10列)
• データが多いので,説明のため500行に減らしておきます
レイヤーを重ねて図を調整(例)
• 基本レイヤー
– 使用するデータフレームを指定
– aes()内には各軸の変数や,データの識別
形式(例:色,形状)を指定
– データの描画形式を指定
• geom_xxx() または stat_*(geom = “xxx”)
– 例えば散布図ならgeom_point()
– geom系とstat系の関係は
「ggplot2再入門」を参照
基本レイヤー(必須)
背景の指定
データ範囲の指定
geom系のみを用いてもよい
1変量(例:価格のヒストグラム)
2変量(例:時系列変化)
※適当に作ったデータ
geom系を複数重ねてもよい
散布図に近似直線を重畳
(つまり線形回帰)
箱ひげ図にローデータを重畳
geom系を複数重ねてもよい
各車両の重量(単位:ポンド/1000)で
オートマ車(0)かマニュアル車(1)か
を非線形予測
いわゆるロジスティック回帰
geom系を複数重ねてもよい
○○条件での記憶成績は,
チャンスレベル(右図では25%)と
比較して…のような情報も伝えられる
←こういうデータが得られたとして…
こういうことも出来なくはない
(もっとスマートなやり方があるかも
しれない…)
stat系のみを用いてもよい
指定した関数
(今回はmean)で要約
stat系を複数重ねてもよい
平均を示す棒にエラーバーを追加
(今回はエラーバーは標準誤差を表す)
←エラーバーの上限
←エラーバーの下限
geom系とstat系を重ねてもよい
箱ひげ図上で平均値の位置を指示
こうしていろいろ説明すると,
どういうときにgeomを,どういうときにstatを使うべき?
…と混乱するかもしれない
実はどちらでもいい
• 詳しくは「ggplot2再入門」を参照
同じグラフが出来上がる
ここまでのまとめ
• ggplot2ではレイヤーを重ねて図を調整していく
– 複数の情報をグラフ上で統合したうえで提示できる
– 基本レイヤーは必須
• 使用するデータフレーム
• 各軸に設定する変数名
• データの描画形式(geomでもstatでも)
– レイヤーの記述順序は自由度が高いが,レイヤーは
上に重ねられていく点に注意
データの視覚化
ー水準間の関係をつかむー
ダイヤモンドの質ごとに
異なる形(shape)を自動で
割り当てる
ダイヤモンドの色ごとに
異なる色(color)を自動で
割り当てる
または
冗長性を高めるために,
一つの要因を複数の基準で
同時に表現してもよい
色を塗り分ける際の注意
colorオプションは主に輪郭のため
fillオプションは主に
領域内の塗りつぶしのため
識別変数は連続値でもよい
連続量では
グラデーションで表現される
長さ(mm)
価格と重さには正の関係があるが,
長さとも関連することが分かる
水準ごとに独立させる
水準ごとに独立させる
拡大
拡大
格子状に配置
入れ子構造で配置
応用編
ー要因計画のグラフを描くー
• これまで紹介してきた離散的なグラフは,
1要因デザイン
• 複数の要因計画では,どのように書くか?
1要因5水準
2要因計画 方法1
592名の学生を,髪の色/目の色/性別で
分類したデータセット
識別するグループを指定する
(この場合は性別)
2要因計画 方法2
主効果/交互作用のパタンに応じて
使い分けるのがよいかもしれない
個人的には,主効果を示したい場合は
facetの方が分かりやすい気がします
3要因計画 方法1
複数要因の組み合わせでグループを識別
(要因ごとに識別形式を指定する)
うまく使えば冗長性を高められる
3要因計画 方法2
• 1要因目=x軸,2要因目=group,3要因目=facet
グラフを調整する
ーPUBLICATION READYなレイアウトー
ggplot2のグラフは美しいが…
• 必ずしもPublication readyではない
– 色(モノクロかグレースケールが望ましい)
– 背景(真っ白が望ましい)
– 軸(x軸・y軸が明確な方がよい)
– etc…
日本心理学会
2015年改訂版
執筆・投稿の手びき
モノクロ/グレースケールにする方法①
ー手動設定ー
モノクロ/グレースケールにする方法②
ー半自動設定ー
グラデーションの両端を
指定すると(1=白,0=黒),
水準数に応じて自動で色が割り当てられる
背景・軸を調整する方法
theme_grey() theme_bw() theme_classic()
※最新のversion 2.1.0(2016/5/28)では,theme_classic()の
仕様が変わっており,軸が表示されなくなっている
プリセットの背景を用いてもよいが…
cowplotパッケージを使いましょう
https://cran.r-project.org/web/packages/cowplot/vignettes/introduction.html
cowplotパッケージを読み込むだけで,以降のグラフは
自動的にtheme_cowplot()が適用された状態になる
(theme_cowplot()と明示してもよい)
theme_cowplot()の注意点
通常,引数は
base_xxx=…
引数は
font_xxx=…
複数のグラフをパネルで並べる場合
themeの調整
• いちいちコードを書くのは面倒!…という方は
• install.packages(“ggThemeAssist”)
– ggplot2のレイアウトを,GUIで操作可能にする,
Rstudioのアドイン
– Theme_Assistの名のとおり,theme系のコード部分
を補助(その他(例:投入変数の指定)は対象外)
https://github.com/calligross/ggthemeassist
ここまでは通常のやり方
←グラフ情報が格納されたオブジェクトを,エディタ上でドラッグ
←アドインから選択
↑
設定が完了したら押す
↑
変更した設定がコードに書き加えられている!
結語
• ggplot2は単なるグラフ化パッケージではない
• データの特性を爆発的に見えやすくする手段
• 細かい設定は確かに面倒なこともある
– しかし,それをサポートするパッケージもある
– サポートするWebサイトもある
• ggplot2逆引き
– https://yutannihilation.github.io/ggplot2-gyakubiki/
• r-wakalangへようこそ
– http://qiita.com/uri/items/5583e91bb5301ed5a4ba
• The ggplot2 Cheat Sheet
– https://www.rstudio.com/wp-
content/uploads/2015/03/ggplot2-cheatsheet.pdf
今回説明を飛ばした点 1
• 細かい引数の設定方法
aes(fill=“grey”)にしたらこうなってしまう→
識別形式はaes()内で
指定するはずでは?
色々とパラメータを変えてみて,
ggplot2のクセを掴んでください
今回説明を飛ばした点 2
例えば右図のようなグラフを
描きたい場合…
ひとつの書き方としては以下
(二つの分布のデータをLong型で
dat1に格納している)
今回説明を飛ばした点 2 続き
こういう書き方も可能
geomの中で別のデータフレームを
参照してもよい
Enjoy ggplot2!

Más contenido relacionado

La actualidad más candente

StanとRで折れ線回帰──空間的視点取得課題の反応時間データを説明する階層ベイズモデルを例に──【※Docswellにも同じものを上げています】
StanとRで折れ線回帰──空間的視点取得課題の反応時間データを説明する階層ベイズモデルを例に──【※Docswellにも同じものを上げています】StanとRで折れ線回帰──空間的視点取得課題の反応時間データを説明する階層ベイズモデルを例に──【※Docswellにも同じものを上げています】
StanとRで折れ線回帰──空間的視点取得課題の反応時間データを説明する階層ベイズモデルを例に──【※Docswellにも同じものを上げています】Hiroyuki Muto
 
ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用nishio
 
StanとRでベイズ統計モデリング読書会 Chapter 7(7.6-7.9) 回帰分析の悩みどころ ~統計の力で歌うまになりたい~
StanとRでベイズ統計モデリング読書会 Chapter 7(7.6-7.9) 回帰分析の悩みどころ ~統計の力で歌うまになりたい~StanとRでベイズ統計モデリング読書会 Chapter 7(7.6-7.9) 回帰分析の悩みどころ ~統計の力で歌うまになりたい~
StanとRでベイズ統計モデリング読書会 Chapter 7(7.6-7.9) 回帰分析の悩みどころ ~統計の力で歌うまになりたい~nocchi_airport
 
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料nishioka1
 
関数データ解析の概要とその方法
関数データ解析の概要とその方法関数データ解析の概要とその方法
関数データ解析の概要とその方法Hidetoshi Matsui
 
Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Hiroshi Shimizu
 
『予測にいかす統計モデリングの基本』の売上データの分析をトレースしてみた
『予測にいかす統計モデリングの基本』の売上データの分析をトレースしてみた『予測にいかす統計モデリングの基本』の売上データの分析をトレースしてみた
『予測にいかす統計モデリングの基本』の売上データの分析をトレースしてみた. .
 
Imputation of Missing Values using Random Forest
Imputation of Missing Values using  Random ForestImputation of Missing Values using  Random Forest
Imputation of Missing Values using Random ForestSatoshi Kato
 
ベイズ機械学習(an introduction to bayesian machine learning)
ベイズ機械学習(an introduction to bayesian machine learning)ベイズ機械学習(an introduction to bayesian machine learning)
ベイズ機械学習(an introduction to bayesian machine learning)医療IT数学同好会 T/T
 
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森Masashi Komori
 
ベイズモデリングと仲良くするために
ベイズモデリングと仲良くするためにベイズモデリングと仲良くするために
ベイズモデリングと仲良くするためにShushi Namba
 
ベイズ推論とシミュレーション法の基礎
ベイズ推論とシミュレーション法の基礎ベイズ推論とシミュレーション法の基礎
ベイズ推論とシミュレーション法の基礎Tomoshige Nakamura
 
ggplot2をつかってみよう
ggplot2をつかってみようggplot2をつかってみよう
ggplot2をつかってみようHiroki Itô
 

La actualidad más candente (20)

Stanでガウス過程
Stanでガウス過程Stanでガウス過程
Stanでガウス過程
 
Rで学ぶロバスト推定
Rで学ぶロバスト推定Rで学ぶロバスト推定
Rで学ぶロバスト推定
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
StanとRで折れ線回帰──空間的視点取得課題の反応時間データを説明する階層ベイズモデルを例に──【※Docswellにも同じものを上げています】
StanとRで折れ線回帰──空間的視点取得課題の反応時間データを説明する階層ベイズモデルを例に──【※Docswellにも同じものを上げています】StanとRで折れ線回帰──空間的視点取得課題の反応時間データを説明する階層ベイズモデルを例に──【※Docswellにも同じものを上げています】
StanとRで折れ線回帰──空間的視点取得課題の反応時間データを説明する階層ベイズモデルを例に──【※Docswellにも同じものを上げています】
 
はじめての「R」
はじめての「R」はじめての「R」
はじめての「R」
 
ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用
 
StanとRでベイズ統計モデリング読書会 Chapter 7(7.6-7.9) 回帰分析の悩みどころ ~統計の力で歌うまになりたい~
StanとRでベイズ統計モデリング読書会 Chapter 7(7.6-7.9) 回帰分析の悩みどころ ~統計の力で歌うまになりたい~StanとRでベイズ統計モデリング読書会 Chapter 7(7.6-7.9) 回帰分析の悩みどころ ~統計の力で歌うまになりたい~
StanとRでベイズ統計モデリング読書会 Chapter 7(7.6-7.9) 回帰分析の悩みどころ ~統計の力で歌うまになりたい~
 
Survival analysis0702
Survival analysis0702Survival analysis0702
Survival analysis0702
 
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
 
階層ベイズとWAIC
階層ベイズとWAIC階層ベイズとWAIC
階層ベイズとWAIC
 
Rを用いたGIS
Rを用いたGISRを用いたGIS
Rを用いたGIS
 
関数データ解析の概要とその方法
関数データ解析の概要とその方法関数データ解析の概要とその方法
関数データ解析の概要とその方法
 
Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説
 
『予測にいかす統計モデリングの基本』の売上データの分析をトレースしてみた
『予測にいかす統計モデリングの基本』の売上データの分析をトレースしてみた『予測にいかす統計モデリングの基本』の売上データの分析をトレースしてみた
『予測にいかす統計モデリングの基本』の売上データの分析をトレースしてみた
 
Imputation of Missing Values using Random Forest
Imputation of Missing Values using  Random ForestImputation of Missing Values using  Random Forest
Imputation of Missing Values using Random Forest
 
ベイズ機械学習(an introduction to bayesian machine learning)
ベイズ機械学習(an introduction to bayesian machine learning)ベイズ機械学習(an introduction to bayesian machine learning)
ベイズ機械学習(an introduction to bayesian machine learning)
 
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森
 
ベイズモデリングと仲良くするために
ベイズモデリングと仲良くするためにベイズモデリングと仲良くするために
ベイズモデリングと仲良くするために
 
ベイズ推論とシミュレーション法の基礎
ベイズ推論とシミュレーション法の基礎ベイズ推論とシミュレーション法の基礎
ベイズ推論とシミュレーション法の基礎
 
ggplot2をつかってみよう
ggplot2をつかってみようggplot2をつかってみよう
ggplot2をつかってみよう
 

Similar a ggplot2用例集 入門編

Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」tokyorgirls
 
TokyoR102_BeginnersSession.pdf
TokyoR102_BeginnersSession.pdfTokyoR102_BeginnersSession.pdf
TokyoR102_BeginnersSession.pdfkotora_0507
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyoShuyo Nakatani
 
ICML2013読み会 開会宣言
ICML2013読み会 開会宣言ICML2013読み会 開会宣言
ICML2013読み会 開会宣言Shohei Hido
 
GCPUG Sapporo vol.2 ML Night
GCPUG Sapporo vol.2 ML NightGCPUG Sapporo vol.2 ML Night
GCPUG Sapporo vol.2 ML Night陽平 山口
 
effectsパッケージを用いた一般化線形モデルの可視化
effectsパッケージを用いた一般化線形モデルの可視化effectsパッケージを用いた一般化線形モデルの可視化
effectsパッケージを用いた一般化線形モデルの可視化Yu Tamura
 

Similar a ggplot2用例集 入門編 (6)

Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
 
TokyoR102_BeginnersSession.pdf
TokyoR102_BeginnersSession.pdfTokyoR102_BeginnersSession.pdf
TokyoR102_BeginnersSession.pdf
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
 
ICML2013読み会 開会宣言
ICML2013読み会 開会宣言ICML2013読み会 開会宣言
ICML2013読み会 開会宣言
 
GCPUG Sapporo vol.2 ML Night
GCPUG Sapporo vol.2 ML NightGCPUG Sapporo vol.2 ML Night
GCPUG Sapporo vol.2 ML Night
 
effectsパッケージを用いた一般化線形モデルの可視化
effectsパッケージを用いた一般化線形モデルの可視化effectsパッケージを用いた一般化線形モデルの可視化
effectsパッケージを用いた一般化線形モデルの可視化
 

ggplot2用例集 入門編