More Related Content Similar to Tokyo r24 r_graph_tutorial (10) More from Takashi Minoda (14) Tokyo r24 r_graph_tutorial1. グラフ
再入門
TOKYO.R #24
簑田 高志
2. 目次
1. 自己紹介
2. なぜRグラフなのか
3. 散布図
1) グラフに装飾する(軸ラベル・凡例)
2) 複数グループの散布図を作成
3) 垂直線や水平線を追加
4) 散布図の回帰直線をプロット
5) 変数を複数の色でプロットする
4. 棒グラフ
1) 棒グラフに色をつける
5. 箱ひげ図を作成
6. ヒストグラムと密度推定
7. 各ファクタ水準に対して、1つの散布図を作成
8. 1ページに複数の図を表示する
9. ファイルに書き出す
※ スクリーンショットや機能等はMac版となります。
3. 自己紹介
• 名前 :簑田 高志
• Twitter :aad34210
• 出身地 :熊本県
• 出身学部 :法学部
• 仕事 :某大手インターネット会社のインター
ネット広告(リスティング)のビジネスアナリスト
4. なぜRグラフなのか
• 分析・解析をする上で、対象となるデータがど
のような分布や構成比になっているかなど、数
字(平均値、標準偏差や偏差値など)ではイ
メージしにくい場合が多い。
• その際にデータを可視化する(グラフ)ことに
よって、可視化することによって、解析の手助
けになることが多い。
• グラフの作り方や見方を知ることによって、知
りたい結果に早くたどり着けるため、グラフの
作り方を知ることはとても重要。
5. なぜRグラフなのか
• ここ数回の発表で、はじめてRを触る方に向け
て、「はじめてのR」、「続はじめてのR」と
いう発表をさせてもらいました
http://www.slideshare.net/aad34210/tokyo-r18 http://www.slideshare.net/aad34210/tokyo-r21-2
• その中でも、「Rのグラフは奥深い…」という
話をしました
• 続編として、今日はRグラフの話の続きです
6. そんな話を知ってるよ!という方は…
• 私は初心者ではないので、そんな話は聞かなく
ても大丈夫!という方。
• そういう方は…
この本をAmazonで注文し 今日のTokyoRに参加している人が!
ておいてください。 持ってくるとサインもらえるかも?!
(¥3,990)
8. 目次
1. 自己紹介
2. なぜRグラフなのか
3. 散布図
1) グラフに装飾する(軸ラベル・凡例)
2) 複数グループの散布図を作成
3) 垂直線や水平線を追加
4) 散布図の回帰直線をプロット
5) 変数を複数の色でプロットする
4. 棒グラフ
1) 棒グラフに色をつける
5. 箱ひげ図を作成
6. ヒストグラムと密度推定
7. 各ファクタ水準に対して、1つの散布図を作成
8. 1ページに複数の図を表示する
9. ファイルに書き出す
※ スクリーンショットや機能等はMac版となります。
11. 散布図(グラフに装飾をする)
• ちょっと見やすくなかったけど、各点がどのよ
うな値になってるのかわかりづらい。
• 背景にグリッドを表示する。
plot(cars ,
main = "cars:Speed vs Stopping Distance" ,
xlab = "Speed(mph)" ,
ylab = "Stopping Distance(ft)" ,
type = "n")
grid()
points(cars)
13. 散布図(凡例を追加)
• カテゴリごとは見れるけど、どれがどのカテゴ
リなのかがわからない。
• 凡例を追加
f <- factor(iris$Species)
with(iris , plot(Petal.Length , Petal.Width , pch = as.integer(f)))
legend(1.5 , 2.4 , as.character(levels(f)), pch = 1:length(levels(f)))
15. 散布図に回帰直線プロット
• 散布図を見ると、回帰直線をひいて当てはまり
がよいかどうかを確認したい。
install.packages("faraway")
library(faraway)
data(strongx)
m <- lm(crossx ~ energy , data = strongx)
plot(crossx ~ energy , data = strongx)
abline(m)
17. 目次
1. 自己紹介
2. なぜRグラフなのか
3. 散布図
1) グラフに装飾する(軸ラベル・凡例)
2) 複数グループの散布図を作成
3) 垂直線や水平線を追加
4) 散布図の回帰直線をプロット
5) 変数を複数の色でプロットする
4. 棒グラフ
1) 棒グラフに色をつける
5. 箱ひげ図を作成
6. ヒストグラムと密度推定
7. 各ファクタ水準に対して、1つの散布図を作成
8. 1ページに複数の図を表示する
9. ファイルに書き出す
※ スクリーンショットや機能等はMac版となります。
18. 棒グラフ(色をつける)
• 棒グラフ作ったけど、味気ない…
• col = を利用して、色を付ける
heights <- tapply(airquality$Temp , airquality$Month , mean)
rel.hts <- (heights - min(heights)) /(max(heights) - min(heights))
grays <- gray(1-rel.hts)
barplot(heights ,
col = grays ,
ylim = c(50 , 90) ,xpd = FALSE ,
main = "Mean Temp . by Month" ,
names.arg = c("May" , "June" , "July" , "Aug" , "Sep") ,
ylab = "Temp (deg.F)")
19. 目次
1. 自己紹介
2. なぜRグラフなのか
3. 散布図
1) グラフに装飾する(軸ラベル・凡例)
2) 複数グループの散布図を作成
3) 垂直線や水平線を追加
4) 散布図の回帰直線をプロット
5) 変数を複数の色でプロットする
4. 棒グラフ
1) 棒グラフに色をつける
5. 箱ひげ図を作成
6. ヒストグラムと密度推定
7. 各ファクタ水準に対して、1つの散布図を作成
8. 1ページに複数の図を表示する
9. ファイルに書き出す
※ スクリーンショットや機能等はMac版となります。
21. 箱ひげ図を作成
• 各カテゴリごとのデータのばらつきはどのよう
になっているかを見るのに最適
data(UScereal , package = "MASS")
boxplot(sugars ~ shelf , data = UScereal ,
main = "Sugar Content By Shelf" ,
xlab = "shelf" , ylab = "Sugar(grams per potion)")
22. 目次
1. 自己紹介
2. なぜRグラフなのか
3. 散布図
1) グラフに装飾する(軸ラベル・凡例)
2) 複数グループの散布図を作成
3) 垂直線や水平線を追加
4) 散布図の回帰直線をプロット
5) 変数を複数の色でプロットする
4. 棒グラフ
1) 棒グラフに色をつける
5. 箱ひげ図を作成
6. ヒストグラムと密度推定
7. 各ファクタ水準に対して、1つの散布図を作成
8. 1ページに複数の図を表示する
9. ファイルに書き出す
※ スクリーンショットや機能等はMac版となります。
24. 目次
1. 自己紹介
2. なぜRグラフなのか
3. 散布図
1) グラフに装飾する(軸ラベル・凡例)
2) 複数グループの散布図を作成
3) 垂直線や水平線を追加
4) 散布図の回帰直線をプロット
5) 変数を複数の色でプロットする
4. 棒グラフ
1) 棒グラフに色をつける
5. 箱ひげ図を作成
6. ヒストグラムと密度推定
7. 各ファクタ水準に対して、1つの散布図を作成
8. 1ページに複数の図を表示する
9. ファイルに書き出す
※ スクリーンショットや機能等はMac版となります。
27. 目次
1. 自己紹介
2. なぜRグラフなのか
3. 散布図
1) グラフに装飾する(軸ラベル・凡例)
2) 複数グループの散布図を作成
3) 垂直線や水平線を追加
4) 散布図の回帰直線をプロット
5) 変数を複数の色でプロットする
4. 棒グラフ
1) 棒グラフに色をつける
5. 箱ひげ図を作成
6. ヒストグラムと密度推定
7. 各ファクタ水準に対して、1つの散布図を作成
8. 1ページに複数の図を表示する
9. ファイルに書き出す
※ スクリーンショットや機能等はMac版となります。
28. 1ページ中に複数の図を表示する
• 1つのページに複数のプロットを並べて表示さ
せたい
• par(mfrow = c(N , M))を利用して複数のグラフ
を作成して並べる
par(mfrow = c(2,2))
Quantile <- seq(from = 0 , to = 1 , length.out = 30)
plot(Quantile , dbeta(Quantile , 2,4) , type = "l" , main = "first")
plot(Quantile , dbeta(Quantile , 4,2) , type = "l" , main = "second")
plot(Quantile , dbeta(Quantile , 1,1) , type = "l" , main = "Third")
plot(Quantile , dbeta(Quantile , 0.5,0.5) , type = "l" , main = "Forth")
Quantile
29. 目次
1. 自己紹介
2. なぜRグラフなのか
3. 散布図
1) グラフに装飾する(軸ラベル・凡例)
2) 複数グループの散布図を作成
3) 垂直線や水平線を追加
4) 散布図の回帰直線をプロット
5) 変数を複数の色でプロットする
4. 棒グラフ
1) 棒グラフに色をつける
5. 箱ひげ図を作成
6. ヒストグラムと密度推定
7. 各ファクタ水準に対して、1つの散布図を作成
8. 1ページに複数の図を表示する
9. ファイルに書き出す
※ スクリーンショットや機能等はMac版となります。
30. ファイルに書き出す
• 作成した図を書き出したい
• savePlot(filename = “file_name” , type = “type” )
で書き出せる
png("myplot.png" , width = 648 , height = 432 )
par(mfrow = c(2,2))
Quantile <- seq(from = 0 , to = 1 , length.out = 30)
plot(Quantile , dbeta(Quantile , 2,4) , type = "l" , main = "first")
plot(Quantile , dbeta(Quantile , 4,2) , type = "l" , main = "second")
plot(Quantile , dbeta(Quantile , 1,1) , type = "l" , main = "Third")
plot(Quantile , dbeta(Quantile , 0.5,0.5) , type = "l" , main = "Forth")
dev.off()
32. 参考(2):demo()
• demo()という関数を利用することで、パッケージの参照デモをみること
ができます。
#demo()のgraphicsを見てみる
demo(graphics)
Given : depth
Edgar Anderson's Iris Data 100 200 300 400 500 600
Notched Boxplots
2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5
7.5
6
6.5
Sepal.Length
5.5
4.5
165 170 175 180 185 165 170 175 180 185
4
-10
2.0 2.5 3.0 3.5 4.0
-15
Sepal.Width
-20
-25
2
-30
7
6
-35
5
lat
Petal.Length
4
-10
3
-15
2
0
1
-20
0.5 1.0 1.5 2.0 2.5
-25
-30
Petal.Width
-35
1 2 3 4 5 6 7 8 9 10
165 170 175 180 185
4.5 5.5 6.5 7.5 1 2 3 4 5 6 7 Group
long
34. まとめ
• 散布図
• 棒グラフ
• 箱ひげ図
• ヒストグラム
• 複数のグラフを一枚で書く
• グラフファイルを書き出す
35. 参考文献・資料
R クックブック :http://www.oreilly.co.jp/books/9784873115337/