SlideShare a Scribd company logo
#HijiyamaR
2015/5/23
1
紀ノ定保礼
ggplot2によるグラフ化
紀ノ定 保礼
大阪大学大学院人間科学研究科
研究領域:認知心理学,交通心理学,人間工学
普段のRの用途
データ処理(2008年~)
分析(2011年~)
描画(2015年~)
自己紹介
2
可視化ツールとしてのggplot2の紹介
①すでに要約されたデータをグラフ化する
例:A群は平均3点,B群は平均5点(t(19)=3.25,p<.05)
慣習的に行われる,文字 → 図 の変換を補助する役割
②探索的に,変数(間の関係)を理解する
ごちゃごちゃしたデータ(Row data)を用いる
ことも多い
変数を入れ替えやすいこと
複数の変数を同時に表示しやすいこと
③データを視覚的に要約する
本日の発表の目的
3
が重要
可視化ツールとしてのggplot2の紹介
①すでに要約されたデータをグラフ化する
例:A群は平均3点,B群は平均5点(t(19)=3.25,p<.05)
慣習的に行われる,文字 → 図 の変換を補助する役割
②探索的に,変数(間の関係)を理解する
ごちゃごちゃしたデータ(Row data)を用いる
ことも多い
変数を入れ替えやすいこと
複数の変数を同時に表示しやすいこと
③データを視覚的に要約する
本日の発表の目的
4
が重要
5
サンプルデータ:diamonds
重さ
質
(5段階)
色
(7段階)
透明度
(8段階)
価格
長さ(mm)
幅(mm)
奥行(mm)
ggplot2パッケージ内に入っています(53940行×10列)
いったん500行に減らしておきましょう
6
データが多いもので…
library(ggplot2)
diamonds2 <- diamonds[sample(nrow(diamonds),500),]
※注)ggplot2の前にdplyr及びplyrパッケージをロードする
場合は、必ずplyr → dplyrの順に
従来のbaseパッケージで描画する場合
7
重さと価格の関係をみる
plot(diamonds2$carat, diamonds2$price)
8
せめて,質(5段階)別に関係を理解したい
出来ますが…
自分で各水準を定義する
必要あり
plot(diamonds2$carat,diamonds2$price,
pch=21,bg=c("yellow","red","green","blue","pink")[diamonds$cut])
要請①:質ではなく,透明度で区別したい
9
変数の交換
重さ
質
(5段階)
色
(7段階)
透明度
(8段階)
価格
長さ(mm)
幅(mm)
奥行(mm)
10
出来ますが…
水準数が増えた分,
塗り分ける色を
改めて定義する必要
plot(diamonds2$carat,diamonds2$price,
pch=21,bg=c("yellow","red","green","blue","pink",
"brown","lightblue","black")[diamonds$clarity])
要請②:質と色と透明度で区別したい
11
変数の追加
重さ
質
(5段階)
色
(7段階)
透明度
(8段階)
価格
長さ(mm)
幅(mm)
奥行(mm)
基準(要因)の数
水準(条件)の数
・・・が増えるにしたがい,
「区別の仕方」も定義する必要
例:質(5段階)と色(7段階)と透明度(8段階)で 区
別したい
5 + 7 + 8 = 20通りの指定
12
想像がつくと思いますが…
13
変数が増えるほど大変…
記号
サイズ
色
plot(diamonds2$carat,diamonds2$price,
pch=c(3,8,15,16,17)[diamonds$cut],
cex=c(1,1.25,1.5,1.75,2,2.25,2.5)[diamonds$color],
col=c("royalblue","cyan","purple","green3","orange",
"brown","magenta","gray")[diamonds$clarity])
14
そこでggplot2 packageの出番
15
重さと価格の関係をみる
どのような形式で描画するか
(pointなら点)
ggplot(diamonds2,aes(y=price,x=carat))+
geom_point()
データフレーム aes()内で,
各軸の変数や
データの弁別基準を
指定
16
質(5段階)別に,重さと価格の関係をみる
配色もさることながら,
コードがすっきり!
ggplot(diamonds2,aes(y=price,x=carat,color=cut))+
geom_point()
弁別基準はaes()内に
要請①:質ではなく,透明度で区別したい
17
変数の交換
重さ
質
(5段階)
色
(7段階)
透明度
(8段階)
価格
長さ(mm)
幅(mm)
奥行(mm)
18
確かに,塗分け基準が
変わっている
ggplot(diamonds2,aes(y=price,x=carat,color=clarity))+
geom_point()
要請②:質と色と透明度で区別したい
19
変数の追加
重さ
質
(5段階)
色
(7段階)
透明度
(8段階)
価格
長さ(mm)
幅(mm)
奥行(mm)
20
方法その1
確かに,弁別基準が
増えている
ggplot(diamonds2,
aes(y=price,x=carat,
color=color,
size=clarity,
shape=cut))+
geom_point()
21
小さくて分かりにくいと思うので,拡大すると…
22
小さくて
分かりにくいと思うので,
一部を拡大すると…
 レイヤーを重ねて図を調整
 例(もちろん他にも指定可能)
23
描画の仕組み
ggplot(iris,aes(y=Petal.Length,x=Sepal.Length,color=Species))+
geom_point()+
theme_bw()+
ylim(0,10)+
theme(axis.text.x=element_text(size=15),
axis.text.y=element_text(size=15))
基本レイヤー(データ指定)
プロットの仕方の指定
背景の指定
軸目盛の指定
軸の書式の指定
24
方法その2(FACETを用いる)
ggplot(diamonds2,aes(y=price,x=carat,color=color))+
geom_point()+
facet_wrap(cut~clarity)
25
小さくて見えないと思うので拡大
可視化ツールとしてのggplot2の紹介
①すでに要約されたデータをグラフ化する
例:A群は平均3点,B群は平均5点(t(19)=3.25,p<.05)
慣習的に行われる,文字 → 図 の変換を補助する役割
②探索的に,変数(間の関係)を理解する
ごちゃごちゃしたデータ(Row data)を用いる
ことも多い
変数を入れ替えやすいこと
複数の変数を同時に表示しやすいこと
③データを視覚的に要約する
本日の発表の目的
26
が重要
27
たとえデータが53940行もあったって
重さ
質
(5段階)
色
(7段階)
透明度
(8段階)
価格
長さ(mm)
幅(mm)
奥行(mm)
例えば,質(5段階)別に価格の平均をみたい
28
一気に視覚的に要約
ggplot(diamonds,aes(y=price, x=cut))+
stat_summary(fun.y=mean, geom="bar")
29
例えば,質と透明度別に価格の平均をみたい
ggplot(diamonds,aes(y=price,x=cut,fill=clarity))+
stat_summary(fun.y=mean,geom="bar")
ggplot(diamonds,aes(y=price,x=cut,fill=clarity))+
stat_summary(fun.y=mean,geom="bar",position= "dodge")
あっという間
30
色セットを変えたくなったら
31
ggplot(diamonds,aes(y=price,x=clarity,group=cut,color=cut))+
stat_summary(fun.y=mean,geom="point")
レイヤーを重ね描き出来るということは…
ggplot(diamonds,aes(y=price,x=clarity,group=cut,color=cut))+
stat_summary(fun.y=mean,geom="line")
32
レイヤーの重ね描きの成せるわざ
ggplot(diamonds,aes(y=price,x=clarity,group=cut,color=cut))+
stat_summary(fun.y=mean,geom="point")+
stat_summary(fun.y=mean,geom="line")
33
エラーバーだってあっという間
53940行×10列のデータも,
数行でここまで仕上げることが出来る
 箱ひげ図
 平均値
 各計測値
34
代表値だけでなく,各計測値も重畳可能
ggplot(data=iris,aes(y=Sepal.Length,x=Species))+
geom_boxplot()+
stat_summary(fun.y=mean,geom="point",color="red")+
geom_jitter(position=position_jitter())
+
+
35

More Related Content

PPTX
ggplot2再入門(2015年バージョン)
KEY
ggplot2できれいなグラフ
PDF
ggplot2用例集 入門編
PDF
MICの解説
PDF
因果探索: 基本から最近の発展までを概説
PPTX
PILCO - 第一回高橋研究室モデルベース強化学習勉強会
PDF
5分でわかるかもしれないglmnet
PDF
アンサンブル木モデル解釈のためのモデル簡略化法
ggplot2再入門(2015年バージョン)
ggplot2できれいなグラフ
ggplot2用例集 入門編
MICの解説
因果探索: 基本から最近の発展までを概説
PILCO - 第一回高橋研究室モデルベース強化学習勉強会
5分でわかるかもしれないglmnet
アンサンブル木モデル解釈のためのモデル簡略化法

What's hot (20)

PPTX
【DL輪読会】Data-Efficient Reinforcement Learning with Self-Predictive Representat...
PDF
[R勉強会][データマイニング] R言語による時系列分析
PPTX
社会心理学者のための時系列分析入門_小森
PPTX
金融時系列のための深層t過程回帰モデル
PDF
【博士論文発表会】パラメータ制約付き特異モデルの統計的学習理論
PPTX
SHAP値の考え方を理解する(木構造編)
PDF
数式を使わずイメージで理解するEMアルゴリズム
PDF
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
PDF
リクルート式 自然言語処理技術の適応事例紹介
PDF
Bayes Independence Test - HSIC と性能を比較する-
PPTX
【論文紹介】How Powerful are Graph Neural Networks?
PDF
Stanコードの書き方 中級編
PDF
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
PDF
科学と機械学習のあいだ:変量の設計・変換・選択・交互作用・線形性
PDF
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
PDF
はじめての「R」
PPTX
【DL輪読会】時系列予測 Transfomers の精度向上手法
PDF
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
PDF
Rで学ぶロバスト推定
PDF
Devsumi 2018summer
【DL輪読会】Data-Efficient Reinforcement Learning with Self-Predictive Representat...
[R勉強会][データマイニング] R言語による時系列分析
社会心理学者のための時系列分析入門_小森
金融時系列のための深層t過程回帰モデル
【博士論文発表会】パラメータ制約付き特異モデルの統計的学習理論
SHAP値の考え方を理解する(木構造編)
数式を使わずイメージで理解するEMアルゴリズム
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
リクルート式 自然言語処理技術の適応事例紹介
Bayes Independence Test - HSIC と性能を比較する-
【論文紹介】How Powerful are Graph Neural Networks?
Stanコードの書き方 中級編
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
科学と機械学習のあいだ:変量の設計・変換・選択・交互作用・線形性
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
はじめての「R」
【DL輪読会】時系列予測 Transfomers の精度向上手法
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
Rで学ぶロバスト推定
Devsumi 2018summer
Ad

Recently uploaded (8)

PDF
【QYResearch】グローバル磁性材料産業チェーンの構造分析と市場動向の詳細解説
PDF
データモデラー視点で語るデータマネジメント入門~組織のデータ活用を成功に導くために~
PDF
【QYResearch】人形ロボット産業の市場構造と今後の発展方向に関する分析レポート
PDF
【QYResearch】グローバルコネクタ市場の動向と将来展望に関する詳細な分析報告
PDF
【初心者向け】生成AI SimonW/LLMとOllama・llamafile無料APIでコマンドラインをAI革命するセミナー。CPUでもGPUでも。Ne...
PDF
【QYResearch】グローバル農業機械市場の動向分析と成長戦略に関する総合調査報告
PDF
XCMSを用いた質量分析データ処理_BioCAsia2021_yamamoto.pdf
PDF
【QYResearch】急拡大する医療機器市場における主要企業の動向と競争環境分析
【QYResearch】グローバル磁性材料産業チェーンの構造分析と市場動向の詳細解説
データモデラー視点で語るデータマネジメント入門~組織のデータ活用を成功に導くために~
【QYResearch】人形ロボット産業の市場構造と今後の発展方向に関する分析レポート
【QYResearch】グローバルコネクタ市場の動向と将来展望に関する詳細な分析報告
【初心者向け】生成AI SimonW/LLMとOllama・llamafile無料APIでコマンドラインをAI革命するセミナー。CPUでもGPUでも。Ne...
【QYResearch】グローバル農業機械市場の動向分析と成長戦略に関する総合調査報告
XCMSを用いた質量分析データ処理_BioCAsia2021_yamamoto.pdf
【QYResearch】急拡大する医療機器市場における主要企業の動向と競争環境分析
Ad

ggplot2によるグラフ化@HijiyamaR#2