36
グググ グググ TOKYO.R #24 ググ ググ

Tokyo r24 r_graph_tutorial

Embed Size (px)

DESCRIPTION

R Graph Tutorial

Citation preview

Page 1: Tokyo r24 r_graph_tutorial

  グラフ再入門

TOKYO.R #24

簑田 高志

Page 2: Tokyo r24 r_graph_tutorial

目次1. 自己紹介2. なぜ Rグラフなのか3. 散布図1) グラフに装飾する(軸ラベル・凡例)2) 複数グループの散布図を作成3) 垂直線や水平線を追加4) 散布図の回帰直線をプロット5) 変数を複数の色でプロットする

4. 棒グラフ1) 棒グラフに色をつける

5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、 1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す

※ スクリーンショットや機能等は Mac 版となります。

Page 3: Tokyo r24 r_graph_tutorial

• 名前 : 簑田 高志• Twitter :aad34210• 出身地 : 熊本県• 出身学部 : 法学部• 仕事 : 某大手インターネット会社のイン

ターネット広告(リスティング)のビジネスアナリスト

自己紹介

Page 4: Tokyo r24 r_graph_tutorial

なぜ R グラフなのか• 分析・解析をする上で、対象となるデータがどの

ような分布や構成比になっているかなど、数字(平均値、標準偏差や偏差値など)ではイメージしにくい場合が多い。

• その際にデータを可視化する(グラフ)ことによって、可視化することによって、解析の手助けになることが多い。

• グラフの作り方や見方を知ることによって、知りたい結果に早くたどり着けるため、グラフの作り方を知ることはとても重要。

Page 5: Tokyo r24 r_graph_tutorial

なぜ R グラフなのか• ここ数回の発表で、はじめて R を触る方に向け

て、「はじめての R 」、「続はじめての R 」という発表をさせてもらいました

• その中でも、「 Rのグラフは奥深い…」という話をしました

• 続編として、今日は R グラフの話の続きです

http://www.slideshare.net/aad34210/tokyo-r18 http://www.slideshare.net/aad34210/tokyo-r21-2

Page 6: Tokyo r24 r_graph_tutorial

そんな話を知ってるよ!という方は…• 私は初心者ではないので、そんな話は聞かなく

ても大丈夫!という方。• そういう方は…

この本を Amazon で注文しておいてください。(¥3,990)

今日の TokyoR に参加している人が!持ってくるとサインもらえるかも?!

Page 7: Tokyo r24 r_graph_tutorial

資料中のお約束事• 資料中は、コードと例文を以下のようにハイライト

しています。• 基本コード: Sample• 例文 :  Sample

Page 8: Tokyo r24 r_graph_tutorial

目次1. 自己紹介2. なぜ Rグラフなのか3. 散布図1) グラフに装飾する(軸ラベル・凡例)2) 複数グループの散布図を作成3) 垂直線や水平線を追加4) 散布図の回帰直線をプロット5) 変数を複数の色でプロットする

4. 棒グラフ1) 棒グラフに色をつける

5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、 1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す

※ スクリーンショットや機能等は Mac 版となります。

Page 9: Tokyo r24 r_graph_tutorial

散布図• X,Y の 2 軸上で表現されたグラフ• X,Y の 2 つの値の関係を見るのに手軽な方法

plot(x,y)

x <- c(1:100)y <- c(1:100)plot(x,y)

Page 10: Tokyo r24 r_graph_tutorial

plot(cars , main = "cars:Speed vs Stopping Distance" ,xlab = "Speed(mph)" ,ylab = "Stopping Distance(ft)")

散布図(グラフに装飾をする)• plot(x ,y) ではなんの情報なのかよくわからない• タイトルや軸ラベルなどを追加してみよう

Page 11: Tokyo r24 r_graph_tutorial

plot(cars , main = "cars:Speed vs Stopping Distance" ,xlab = "Speed(mph)" ,ylab = "Stopping Distance(ft)" ,type = "n")

grid()points(cars)

散布図(グラフに装飾をする)• ちょっと見やすくなかったけど、各点がどのよ

うな値になってるのかわかりづらい。• 背景にグリッドを表示する。

Page 12: Tokyo r24 r_graph_tutorial

散布図(複数グループの散布図を作成)• 調べたいデータにカテゴリがついている• カテゴリごとの分布を知りたい

with(iris , plot(Petal.Length , Petal.Width , pch = as.integer(Species)))

Page 13: Tokyo r24 r_graph_tutorial

散布図(凡例を追加)• カテゴリごとは見れるけど、どれがどのカテゴ

リなのかがわからない。• 凡例を追加

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)))

Page 14: Tokyo r24 r_graph_tutorial

散布図(垂直線や水平線を追加)• 一定のラインを超えているかどうか、ベンチ

マークのラインを追加したい• abline(h = or v = ) を使って追加

m <- mean(sma$samp)vm <- mean(sma$ind)plot(sma)abline(h = m)abline(v = vm)

Page 15: Tokyo r24 r_graph_tutorial

散布図に回帰直線プロット• 散布図を見ると、回帰直線をひいて当てはまり

がよいかどうかを確認したい。install.packages("faraway")library(faraway)data(strongx)m <- lm(crossx ~ energy , data = strongx)plot(crossx ~ energy , data = strongx)abline(m)

Page 16: Tokyo r24 r_graph_tutorial

変数を複数の色でプロットする• 変数の中のデータを区分けして色をつける

colors <- ifelse(samp > 1 , "red" , "blue")plot(samp , lwd = 3 , col = colors)

Page 17: Tokyo r24 r_graph_tutorial

目次1. 自己紹介2. なぜ Rグラフなのか3. 散布図1) グラフに装飾する(軸ラベル・凡例)2) 複数グループの散布図を作成3) 垂直線や水平線を追加4) 散布図の回帰直線をプロット5) 変数を複数の色でプロットする

4. 棒グラフ1) 棒グラフに色をつける

5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、 1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す

※ スクリーンショットや機能等は Mac 版となります。

Page 18: Tokyo r24 r_graph_tutorial

棒グラフ(色をつける)• 棒グラフ作ったけど、味気ない…• 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)")

Page 19: Tokyo r24 r_graph_tutorial

目次1. 自己紹介2. なぜ Rグラフなのか3. 散布図1) グラフに装飾する(軸ラベル・凡例)2) 複数グループの散布図を作成3) 垂直線や水平線を追加4) 散布図の回帰直線をプロット5) 変数を複数の色でプロットする

4. 棒グラフ1) 棒グラフに色をつける

5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、 1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す

※ スクリーンショットや機能等は Mac 版となります。

Page 20: Tokyo r24 r_graph_tutorial

箱ひげ図を作成• そもそも箱ひげ図とは…?

中央値

75 %点

( Q3)

25 %点

( Q2)

75%点の1.5 倍に値があった場

合の点

25% 点の1.5 倍に

あった場合の点

Page 21: Tokyo r24 r_graph_tutorial

箱ひげ図を作成• 各カテゴリごとのデータのばらつきはどのよう

になっているかを見るのに最適data(UScereal , package = "MASS")boxplot(sugars ~ shelf , data = UScereal ,

main = "Sugar Content By Shelf" ,xlab = "shelf" , ylab = "Sugar(grams per potion)")

Page 22: Tokyo r24 r_graph_tutorial

目次1. 自己紹介2. なぜ Rグラフなのか3. 散布図1) グラフに装飾する(軸ラベル・凡例)2) 複数グループの散布図を作成3) 垂直線や水平線を追加4) 散布図の回帰直線をプロット5) 変数を複数の色でプロットする

4. 棒グラフ1) 棒グラフに色をつける

5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、 1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す

※ スクリーンショットや機能等は Mac 版となります。

Page 23: Tokyo r24 r_graph_tutorial

ヒストグラムに密度推定を追加• データのヒストグラムがあり、見かけ密度を表

す曲線を追加したい。samp <- rgamma(500 , 2,2)hist(samp , 20 , prob = T)lines(density(samp))

Page 24: Tokyo r24 r_graph_tutorial

目次1. 自己紹介2. なぜ Rグラフなのか3. 散布図1) グラフに装飾する(軸ラベル・凡例)2) 複数グループの散布図を作成3) 垂直線や水平線を追加4) 散布図の回帰直線をプロット5) 変数を複数の色でプロットする

4. 棒グラフ1) 棒グラフに色をつける

5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、 1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す

※ スクリーンショットや機能等は Mac 版となります。

Page 25: Tokyo r24 r_graph_tutorial

各カテゴリに対して 1 つの散布図を作成• データ中に複数のカテゴリがあり、それぞれの

散布図を 1 つのグラフで見たい。data(Cars93 , package = "MASS")coplot(Horsepower ~ MPG.city | Origin , data = Cars93)

Page 26: Tokyo r24 r_graph_tutorial

各カテゴリに対して 1 つの散布図を作成• データ中に複数のカテゴリがあり、それぞれの

散布図を 1 つのグラフで見たい。coplot(Sepal.Length ~ Petal.Length | Species , data = iris)

Page 27: Tokyo r24 r_graph_tutorial

目次1. 自己紹介2. なぜ Rグラフなのか3. 散布図1) グラフに装飾する(軸ラベル・凡例)2) 複数グループの散布図を作成3) 垂直線や水平線を追加4) 散布図の回帰直線をプロット5) 変数を複数の色でプロットする

4. 棒グラフ1) 棒グラフに色をつける

5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、 1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す

※ スクリーンショットや機能等は Mac 版となります。

Page 28: Tokyo r24 r_graph_tutorial

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

Page 29: Tokyo r24 r_graph_tutorial

目次1. 自己紹介2. なぜ Rグラフなのか3. 散布図1) グラフに装飾する(軸ラベル・凡例)2) 複数グループの散布図を作成3) 垂直線や水平線を追加4) 散布図の回帰直線をプロット5) 変数を複数の色でプロットする

4. 棒グラフ1) 棒グラフに色をつける

5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、 1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す

※ スクリーンショットや機能等は Mac 版となります。

Page 30: Tokyo r24 r_graph_tutorial

ファイルに書き出す• 作成した図を書き出したい• 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()

Page 31: Tokyo r24 r_graph_tutorial

参考( 1 ): ggplot2

• これまで紹介したのは R のデフォルトで利用できるパッケージ。• 自分で色々と細かく設定できるのがメリットですが、簡単に綺麗なグラ

フを書きたい場合は、 ggplot2 というパッケージがおすすめ。

• 過去に発表しています。• http://www.slideshare.net/aad34210/ggplot2-110129-6739813

Page 32: Tokyo r24 r_graph_tutorial

参考( 2 ): demo()

• demo() という関数を利用することで、パッケージの参照デモをみることができます。#demo() の graphics を見てみるdemo(graphics)

Page 33: Tokyo r24 r_graph_tutorial

参考( 3 ):グラフサンプル集• ネット上では有益なサンプル集がありますので、それを利用しない手は

ありません。■R Graphical Manualhttp://rgm2.lab.nig.ac.jp/RGM2/images.php?show=all&pageID=1958

• 過去に発表しています。• http://www.slideshare.net/aad34210/tokyo-r-no8

Page 34: Tokyo r24 r_graph_tutorial

まとめ

• 散布図

• 棒グラフ

• 箱ひげ図

• ヒストグラム

• 複数のグラフを一枚で書く

• グラフファイルを書き出す

Page 35: Tokyo r24 r_graph_tutorial

参考文献・資料R クックブック

: http://www.oreilly.co.jp/books/9784873115337/

Page 36: Tokyo r24 r_graph_tutorial

ご清聴ありがとうございましたm(___)m