Tokyo r24 r_graph_tutorial
Upcoming SlideShare
Loading in...5
×
 

Tokyo r24 r_graph_tutorial

on

  • 2,548 views

R Graph Tutorial

R Graph Tutorial

Statistics

Views

Total Views
2,548
Views on SlideShare
1,437
Embed Views
1,111

Actions

Likes
4
Downloads
25
Comments
0

7 Embeds 1,111

http://codeiq.hatenablog.com 985
http://blog.iotaworks.jp 104
https://twitter.com 13
https://si0.twimg.com 3
http://webcache.googleusercontent.com 3
http://tweetedtimes.com 2
https://www.google.co.jp 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Tokyo r24 r_graph_tutorial Tokyo r24 r_graph_tutorial Presentation Transcript

  • グラフ 再入門TOKYO.R #24簑田 高志
  • 目次1. 自己紹介2. なぜRグラフなのか3. 散布図 1) グラフに装飾する(軸ラベル・凡例) 2) 複数グループの散布図を作成 3) 垂直線や水平線を追加 4) 散布図の回帰直線をプロット 5) 変数を複数の色でプロットする4. 棒グラフ 1) 棒グラフに色をつける5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す ※ スクリーンショットや機能等はMac版となります。
  • 自己紹介• 名前 :簑田 高志• Twitter :aad34210• 出身地 :熊本県• 出身学部 :法学部• 仕事 :某大手インターネット会社のインター ネット広告(リスティング)のビジネスアナリスト
  • なぜRグラフなのか• 分析・解析をする上で、対象となるデータがど のような分布や構成比になっているかなど、数 字(平均値、標準偏差や偏差値など)ではイ メージしにくい場合が多い。• その際にデータを可視化する(グラフ)ことに よって、可視化することによって、解析の手助 けになることが多い。• グラフの作り方や見方を知ることによって、知 りたい結果に早くたどり着けるため、グラフの 作り方を知ることはとても重要。
  • なぜRグラフなのか• ここ数回の発表で、はじめてRを触る方に向け て、「はじめてのR」、「続はじめてのR」と いう発表をさせてもらいました http://www.slideshare.net/aad34210/tokyo-r18 http://www.slideshare.net/aad34210/tokyo-r21-2• その中でも、「Rのグラフは奥深い…」という 話をしました• 続編として、今日はRグラフの話の続きです
  • そんな話を知ってるよ!という方は…• 私は初心者ではないので、そんな話は聞かなく ても大丈夫!という方。• そういう方は… この本をAmazonで注文し 今日のTokyoRに参加している人が! ておいてください。 持ってくるとサインもらえるかも?! (¥3,990)
  • 資料中のお約束事 • 資料中は、コードと例文を以下のようにハイライト しています。 • 基本コード:Sample • 例文: Sample
  • 目次1. 自己紹介2. なぜRグラフなのか3. 散布図 1) グラフに装飾する(軸ラベル・凡例) 2) 複数グループの散布図を作成 3) 垂直線や水平線を追加 4) 散布図の回帰直線をプロット 5) 変数を複数の色でプロットする4. 棒グラフ 1) 棒グラフに色をつける5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す ※ スクリーンショットや機能等はMac版となります。
  • 散布図• X,Yの2軸上で表現されたグラフ• X,Yの2つの値の関係を見るのに手軽な方法 plot(x,y) x <- c(1:100) y <- c(1:100) plot(x,y)
  • 散布図(グラフに装飾をする)• plot(x ,y)ではなんの情報なのかよくわからない• タイトルや軸ラベルなどを追加してみよう plot(cars , main = "cars:Speed vs Stopping Distance" , xlab = "Speed(mph)" , ylab = "Stopping Distance(ft)")
  • 散布図(グラフに装飾をする)• ちょっと見やすくなかったけど、各点がどのよ うな値になってるのかわかりづらい。• 背景にグリッドを表示する。 plot(cars , main = "cars:Speed vs Stopping Distance" , xlab = "Speed(mph)" , ylab = "Stopping Distance(ft)" , type = "n") grid() points(cars)
  • 散布図(複数グループの散布図を作成)• 調べたいデータにカテゴリがついている• カテゴリごとの分布を知りたい with(iris , plot(Petal.Length , Petal.Width , pch = as.integer(Species)))
  • 散布図(凡例を追加)• カテゴリごとは見れるけど、どれがどのカテゴ リなのかがわからない。• 凡例を追加 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)))
  • 散布図(垂直線や水平線を追加)• 一定のラインを超えているかどうか、ベンチ マークのラインを追加したい• abline(h = or v = )を使って追加 m <- mean(sma$samp) vm <- mean(sma$ind) plot(sma) abline(h = m) abline(v = vm)
  • 散布図に回帰直線プロット• 散布図を見ると、回帰直線をひいて当てはまり がよいかどうかを確認したい。install.packages("faraway")library(faraway)data(strongx)m <- lm(crossx ~ energy , data = strongx)plot(crossx ~ energy , data = strongx)abline(m)
  • 変数を複数の色でプロットする• 変数の中のデータを区分けして色をつけるcolors <- ifelse(samp > 1 , "red" , "blue")plot(samp , lwd = 3 , col = colors)
  • 目次1. 自己紹介2. なぜRグラフなのか3. 散布図 1) グラフに装飾する(軸ラベル・凡例) 2) 複数グループの散布図を作成 3) 垂直線や水平線を追加 4) 散布図の回帰直線をプロット 5) 変数を複数の色でプロットする4. 棒グラフ 1) 棒グラフに色をつける5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す ※ スクリーンショットや機能等はMac版となります。
  • 棒グラフ(色をつける)• 棒グラフ作ったけど、味気ない…• 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)")
  • 目次1. 自己紹介2. なぜRグラフなのか3. 散布図 1) グラフに装飾する(軸ラベル・凡例) 2) 複数グループの散布図を作成 3) 垂直線や水平線を追加 4) 散布図の回帰直線をプロット 5) 変数を複数の色でプロットする4. 棒グラフ 1) 棒グラフに色をつける5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す ※ スクリーンショットや機能等はMac版となります。
  • 箱ひげ図を作成• そもそも箱ひげ図とは…? 75%点の 1.5倍に値が あった場合 の点 75%点 (Q3 ) 中央値 25%点 (Q2 ) 25%点の 1.5倍に あった場合 の点
  • 箱ひげ図を作成• 各カテゴリごとのデータのばらつきはどのよう になっているかを見るのに最適data(UScereal , package = "MASS")boxplot(sugars ~ shelf , data = UScereal , main = "Sugar Content By Shelf" , xlab = "shelf" , ylab = "Sugar(grams per potion)")
  • 目次1. 自己紹介2. なぜRグラフなのか3. 散布図 1) グラフに装飾する(軸ラベル・凡例) 2) 複数グループの散布図を作成 3) 垂直線や水平線を追加 4) 散布図の回帰直線をプロット 5) 変数を複数の色でプロットする4. 棒グラフ 1) 棒グラフに色をつける5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す ※ スクリーンショットや機能等はMac版となります。
  • ヒストグラムに密度推定を追加• データのヒストグラムがあり、見かけ密度を表 す曲線を追加したい。samp <- rgamma(500 , 2,2)hist(samp , 20 , prob = T)lines(density(samp))
  • 目次1. 自己紹介2. なぜRグラフなのか3. 散布図 1) グラフに装飾する(軸ラベル・凡例) 2) 複数グループの散布図を作成 3) 垂直線や水平線を追加 4) 散布図の回帰直線をプロット 5) 変数を複数の色でプロットする4. 棒グラフ 1) 棒グラフに色をつける5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す ※ スクリーンショットや機能等はMac版となります。
  • 各カテゴリに対して1つの散布図を作成• データ中に複数のカテゴリがあり、それぞれの 散布図を1つのグラフで見たい。data(Cars93 , package = "MASS")coplot(Horsepower ~ MPG.city | Origin , data = Cars93)
  • 各カテゴリに対して1つの散布図を作成• データ中に複数のカテゴリがあり、それぞれの 散布図を1つのグラフで見たい。coplot(Sepal.Length ~ Petal.Length | Species , data = iris)
  • 目次1. 自己紹介2. なぜRグラフなのか3. 散布図 1) グラフに装飾する(軸ラベル・凡例) 2) 複数グループの散布図を作成 3) 垂直線や水平線を追加 4) 散布図の回帰直線をプロット 5) 変数を複数の色でプロットする4. 棒グラフ 1) 棒グラフに色をつける5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す ※ スクリーンショットや機能等はMac版となります。
  • 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
  • 目次1. 自己紹介2. なぜRグラフなのか3. 散布図 1) グラフに装飾する(軸ラベル・凡例) 2) 複数グループの散布図を作成 3) 垂直線や水平線を追加 4) 散布図の回帰直線をプロット 5) 変数を複数の色でプロットする4. 棒グラフ 1) 棒グラフに色をつける5. 箱ひげ図を作成6. ヒストグラムと密度推定7. 各ファクタ水準に対して、1つの散布図を作成8. 1ページに複数の図を表示する9. ファイルに書き出す ※ スクリーンショットや機能等はMac版となります。
  • ファイルに書き出す• 作成した図を書き出したい• 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()
  • 参考(1):ggplot2• これまで紹介したのはRのデフォルトで利用できるパッケージ。• 自分で色々と細かく設定できるのがメリットですが、簡単に綺麗なグラ フを書きたい場合は、ggplot2というパッケージがおすすめ。• 過去に発表しています。 • http://www.slideshare.net/aad34210/ggplot2-110129-6739813
  • 参考(2):demo()• demo()という関数を利用することで、パッケージの参照デモをみること ができます。 #demo()のgraphicsを見てみる demo(graphics) Given : depth Edgar Andersons 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 -102.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 -200.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
  • 参考(3):グラフサンプル集• ネット上では有益なサンプル集がありますので、それを利用しない手は ありません。 ■R Graphical Manual http://rgm2.lab.nig.ac.jp/RGM2/images.php?show=all&pageID=1958• 過去に発表しています。 • http://www.slideshare.net/aad34210/tokyo-r-no8
  • まとめ • 散布図 • 棒グラフ • 箱ひげ図 • ヒストグラム • 複数のグラフを一枚で書く • グラフファイルを書き出す
  • 参考文献・資料 R クックブック :http://www.oreilly.co.jp/books/9784873115337/
  • ご清聴ありがとうございました m(___)m