• Like
ggplot2 110129
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

ggplot2 110129

  • 2,502 views
Published

Tokyo.R 用 資料 …

Tokyo.R 用 資料
ggplot2

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,502
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
17
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ggplot2 パッケージ作成者: Wickam さんの話を聞いて
  • 2. 目次
    • 自己紹介
    • 3. 統数研でのセミナー
    • 4. 今日の話の構成
    • 5. ggplot2 とはどんなパッケージ?
    • 6. インストール方法
    • 7. 基本的な使い方
    • 8. 具体的にやってみよう
    • 9. まとめ
    • 10. 参考資料
  • 11. 自己紹介
    • 名前 :簑田 高志 (みのだ たかし)
    • 12. Twitter :aad34210
    • 13. ブログ : http://pracmper.blogspot.com/
    • 14. 出身地 :熊本県
    • 15. 出身学部 :法学部
    • 16. 仕事 :一般ユーザー向けの Web サービスの 企 画・運営、アナリスト
    • 17. 趣味 :テニス(踊れません・歌えません)
    • 18. 最近はまってるもの
            • : MGSPW
  • 19. 統数研でのセミナー
  • 20. 統数研でのセミナー
    • 11月25日:統計数理研究所で海外のスピーカーを招いて、セミナーが行われました。
    • 21. 今回は2人の方が参加されました。
      • ggplot2のパッケージ開発者 Hadley Wickhamさん
      • 22. 黄色い本を書かれた Uwe Liggesさん
    • 概要は以下のURLに公開されています。
      • http://jasp.ism.ac.jp/~nakanoj/workshop10/2010Rmeeting.htm
  • 23. 統数研でのセミナー
    • Wickhamさんは(当然)ggplot2の話。WorkShop形式で話をされて、課題をしながら進めていきました。
    • 24. LiggesさんはCRANの運営の話しとパッケージの話。みなさんがアップロードされたパッケージのメンテナンスをしてくれています。
  • 25. 今日の話の構成
  • 26. 今日の話の構成
    • 時間は最大30分〜40分ぐらい。
    • 27. インストール〜使い方まで。
    • 28. ベースは統数研のセミナーで使われた資料を元にアレンジしています。
    • 29. 具体的にデモをやりつつ進めていきます。
    • 30. こんな人向け
      • デフォルトのplotではちょっと物足りない…
      • 31. きれいなグラフを作りたい。
  • 32. ggplot2とは どんなパッケージ?
  • 33. ggplot2とはどんなパッケージ?
    • ggplot2とは?
      • ggplot2 is a plotting system for R, based on the grammar of graphics, which tries to take the good parts of base and lattice graphics and none of the bad parts. It takes care of many of the fiddly details that make plotting a hassle (like drawing legends) as well as providing a powerful model of graphics that makes it easy to produce complex multi-layered graphics
      • 34. 超意訳: グラフ文法をベースにした R の描画機能。簡単にきれいでパワフルなグラフがかけまっせ!
    • 出典: http://had.co.nz/ggplot2/
  • 35. ggplot2とはどんなパッケージ?
    • 具体的にはどんなグラフが描けるのか?
  • 36. インストール方法
  • 37. インストール方法
    • 他のインストールパッケージと全く同じ
      • install.packages(“ggplot2”)
      • 38. library(ggplot2)
    • 初めてインストールする場合は、CRANのロケーションを選んでください。
    Japan(Hyogo) Japan(Tsukuba) を選択してください。 (画面はMacOS版)
  • 39. 基本的な使い方
  • 40. 基本的な使い方
    • ggplot2には2つの構文があります。
      • ggplot([data] , aes(x = X 軸 , y = Y 軸 )) : データ定義
        • + geom_◯◯◯◯() : 出力するグラフ
        • 41. + geom_◯◯◯◯() : 出力するグラフ 2
        • 42. + xlim( 最小値 , 最大値 ) + ylim( 最小値 , 最大値 )
        • 43. + xlab(X 軸ラベル )+ ylab(Y 軸ラベル ) などなど…
    • 例)
        • ggplot(movies, aes(x=mpaa, y=rating)) +geom_jitter(aes(colour=rating))+xlab(“対象年令”) + ylab(“レーティング”)
  • 44. 基本的な使い方
    • ggplot2には2つの構文があります。
      • qplot(x , y , data = [data] , geom = グラフ )
    • 例)
        • qplot(mpaa, rating, data=movies,geom=c("boxplot","jitter"))
    • ggplot~,qplotも構文が違うだけで同じグラフを作ってくれます。
  • 45. 具体的にやってみよう
  • 46. 具体的にやってみよう
    • 利用するデータ:diamonds (ggplotパッケージに同梱)
    • 47. 呼び出し方:data(diamonds)
    • 48. サンプルデータ (ダイアモンドのデータ)
    • 49. carat cut color clarity depth table price x y z
    • 50. 1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43
    • 51. 2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31
    • 52. 3 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31
    • 53. 4 0.29 Premium I VS2 62.4 58 334 4.20 4.23 2.63
    • 54. 5 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75
    • 55. 6 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48
  • 56. 具体的にやってみよう(棒グラフ) ■変数 cut , carat の 棒グラフ と、X軸の間隔を調整してみよう。 ・ qplot(cut, data = diamonds) ・ ggplot(diamonds , aes(cut)) + geom_bar() ・ qplot(carat, data = diamonds) ・ ggplot(diamonds , aes(carat)) + geom_bar() ・ qplot(carat, data = diamonds, binwidth = 1) ・ ggplot(diamonds , aes(x = carat)) + geom_bar(binwidth = 1) ・ qplot(carat, data = diamonds, binwidth = 0.1) ・ ggplot(diamonds , aes(x = carat)) + geom_bar(binwidth = 0.1) ・ qplot(carat, data = diamonds, binwidth = 0.01) ・ ggplot(diamonds , aes(x = carat)) + geom_bar(binwidth = 0.1)
  • 57. 具体的にやってみよう(棒グラフ・六角形) ■変数 depth を Cutごとでみてみよう ・ qplot(depth, data = diamonds, binwidth = 0.2, fill = cut) + xlim(55, 70) ・ ggplot(diamonds , aes(depth , fill = cut)) + geom_bar(binwidth = 0.2) + xlim (55 , 70) ■変数 depth を Cutごとでみてみよう ・ qplot(depth, data = diamonds, binwidth = 0.2) + xlim(55, 70) + facet_wrap(~ cut) ・ ggplot(diamonds , aes(depth)) + geom_bar(binwidth = 0.2) + xlim(55 , 70) + facet_wrap(~cut) ■もうちょっとかっこ良く(hexbinパッケージが必要かも) 六角形 ・ qplot(log10(carat), log10(price), data = diamonds,geom = "hex", bins = 10) + facet_wrap(~ cut)
  • 58. 具体的にやってみよう(散布図・平均直線・回帰直線) ■変数 price と carat の関係をみてみたい。( 散布図 ) ・ qplot(price, carat, data = diamonds, colour = I("blue")) ・ ggplot(diamonds , aes(x = price , y = carat)) + geom_jitter(colour = I("blue") ) ■ラインを引いてみよう - 条件つき平均 ・ ggplot(diamonds , aes(price , carat)) + geom_jitter(colour = I("blue") ) + geom_smooth(colour = "red") - 回帰直線 ・ ggplot(diamonds , aes(price , carat)) + geom_jitter() + geom_smooth(method = "lm") このラインの詳細はこちら http://had.co.nz/ggplot2/geom_smooth.html
  • 59. 具体的にやってみよう(透過グラフ) ■変数 price と carat の関係の強い所だけ見てみたい。  (グラフを透過的にしてみる) ・ qplot(price, carat, data = diamonds, alpha = I(1/10)) ・ qplot(price, carat, data = diamonds, alpha = I(1/50)) ・ qplot(price, carat, data = diamonds, alpha = I(1/100)) ・ qplot(price, carat, data = diamonds, alpha = I(1/250))
  • 60. 具体的にやってみよう(箱ヒゲ図) ■最後にBoxplotとの重ね書き(箱ヒゲ図) ※ データを切り替えます:movie ・ ggplot(movies , aes(x = mpaa , y = rating)) + geom_jitter() ・ ggplot(movies , aes(x = mpaa , y = rating)) + geom_jitter(aes(colour = rating)) ・ ggplot(movies , aes(x = mpaa , y = rating)) + geom_jitter(aes(colour = rating)) + geom_boxplot()
  • 61. まとめ
  • 62. まとめ
    • ggplot の構文
      • ggplot(data , aes(x軸, y軸)) + geom_(グラフ種類)~~
      • 63. qplot(x軸 , y軸 , data , geom = (グラフ種類))~~
    • 様々なオプション
      • Xlab , ylab , xlim , ylim, logなど…
    • グラフの重ね書き
      • ggplotの場合:~+ geom_jitter() + geom_boxplot()のように連結していけばよい。
      • 64. qplot の場合: geom = c(“jitter” , “boxplot”) のようにc()で追加
  • 65. 参考文献
  • 66. 今日の話の構成
    • ggplot2 マニュアル
      • http://had.co.nz/ggplot2/
        • 利用する時にとても参考になります。
    • 統数研セミナー概要
      • http://jasp.ism.ac.jp/~nakanoj/workshop10/2010Rmeeting.htm
    • セミナー資料
      • http://had.co.nz/courses/10-tokyo/
    • SlideShare(Hadly Wickham)
      • http://www.slideshare.net/hadley/presentations
  • 67. ご清聴 ありがとうございました m(__)m