Edited at

ggplot2に関する資料まとめ

More than 3 years have passed since last update.

そろそろワンストップなまとめ記事があってもいいはずと思ったので、個人的なメモとしてまとめました。

2016/06/10追記: 資料1件追加


2016/03/15追記: ggplot2 v2向けに一部修正


ggplot2のイメージをつかもう

まずはこのggplot2がどういうものなのかをつかみましょう。


ggplot2の完全な初心者向け

ggplot2に初めて触れるという方は、まずこのスライドを一読されるのをオススメします:

ggplot2を理解するためには、その文法をイメージできるようになることが近道です。このスライドは従来のplotとggplot2との違いをわかりやすく解説してあります。まずはレイヤーの感覚をつかむためにも、提示してあるサンプルコードをひたすら打ちましょう。手を動かす、大事。

こちらはggplot2を実際に使った用例集として、主に心理系領域での場面を想定して用意してあります。これにあるサンプルコードをひたすら打ちましょう。手を動かす、大事。


もう少しggplot2の中身を知りたい方向け

Rにもある程度慣れてて、上述のスライドにあるテストコードを打ち終わったら、こちらのスライドにチャレンジしましょう:

ちょっと難しく感じるところがあるかも知れませんが、諦めず最後まで読み通しましょう。このスライドはggplot2の基礎、そして今後自分で使いこなすために必要な知識が過不足なくつめ込まれているからです。このスライドで"Grammar of Graphics"の感覚をつかむためにも、サンプルコードをひたすら打ちましょう。手を動かす、大事。


ggplot2の機能一覧的な資料を手元に

ある程度イメージがつかめたら、コード写経ではなく自分でggplot2を描いてみましょう。R組み込みのデータから適当に見繕っていろんなplotをつくってみるといいでしょう。

しかし、いざ自分で一からggplot2を作っていこうにも、使用する関数や引数などわからないことがたくさんです。そこで、基本的な関数一覧などがまとまった資料を手元に置いておき、その都度確認しながら作業しましょう。


ggplot2チートシート

日常使いなら、できるだけコンパクトにまとまっていたほうが何かと楽ですね。RStudioが作成して公開しているチートシートが便利です:

非常にコンパクトにまとまっていて、使い勝手が非常に高いです。これを印刷して手元に置いてもいいのですが、RStudioの最新版ならメニューの"Help - Cheatsheet"から開くことができます1


ggplot2(v2.1.0) オンラインヘルプトピックス

「チートシートでは情報が圧縮されすぎていてよくわからない」「サンプルコードがないと無理」という方は、以下のサイトへ。

これはggplot2のサポートサイト内にある、各関数のヘルプトピックス集です。手元に置いておく(ブラウザでピン留する)にはおそらく質・量ともにちょうどいいと思います2。最初に紹介したスライドに出ていた"Grammar of Graphics"の区分でリストになっています。ぜひサンプルコードを打ちましょう。手を動かす、大事。


ggplot2 book

このggplot2の開発者であるHadleyが現在執筆している書籍です。執筆中なのでまだ本体はないのですが、以下のGithubリポジトリにコードがおいてあり、自分でビルドすればpdf版が作れます:

ビルドする方法については、以下の記事を参考にしてください:

おそらくこれがこれからの教科書になるはずです。


困った時に

自分で色々plotしていくと、「いろいろ調べたけれどわからない」と行き詰まってしまうことがよくあります。そんな時は以下を参考にしてください。


#ggplot2逆引き

「あなたが躓くところはきっと誰かも躓いている」ということで、現在Qiitaで上記タグをつけたプロジェクトが進行中です:

これがどのようなプロジェクトかは、以下のスライドをご覧ください:

プロジェクトまとめサイトで記事を検索してヒットすれば、間違いなく目の前の問題は解決するはずです。ただ、だいぶ数がそろってきていますが、きっとまだまだあるはずです。小さなことでも大歓迎です。ぜひ投稿しましょう!


r-wakalang

Tokyo.Rの有志が中心となって運用している、Rお悩み相談チャットルームです3。利用方法はとても簡単で、メールアドレスを登録するだけです。詳しくは以下のスライドをご覧ください:

ここには初心者用の部屋(#r_begginers)もありますし、ggplot2専用の部屋(#ggplot2)もあります。さらに上のスライドにある通り、質問が投下されると本当にスゴい方々があっという間に答えてくれます4。わからなかったら、ぜひここで聞いてみましょう。


ggplot2を拡張

ある程度使っていくと、「ggplot2でこんなことできないのかな」など思うようになります。ggplot2の魅力は拡張パッケージも豊富にあることです:

この中からいくつかピックアップして、簡単な説明とサンプルを準備しました5:

また、各拡張パッケージのExampleのサンプルコードを取得・実行し、その出力をまとめたサイトがあります:

この他にもまだまだたくさんありますし、コンセプトと技術があれば自分で開発することだってできます。もしこの2つがあるのでしたら、チャレンジしてみてはいかがでしょうか。


最後に

この記事は2016/03/15現在での、私なりのまとめです。新たな情報を入手したり、変更が必要となったら随時修正します。





  1. 2016/03/15現在、リリース版は0.99.892で対応しています。 



  2. (2016/03/15追記)ただし、この内容はversionが2.1.0と最新版のものです(2016/03/15現在)。以前のversionでは動かないものがありますのでご注意ください。 



  3. slackというソフトウェアを利用しています。チャット機能の使い方などがわからない場合は、「slack ほげほげ」で検索するとだいたい解決します。あるいはチャットルームにいるメンバーに聞いてみるのもいいと思います。 



  4. 本当に早いです。そしてみなさんすごく親切です。多分いちいち英語記事を彷徨うよりはここで聞けば一発です。 



  5. 最近めっきり更新してなくてごめんなさい…でも放棄したわけではないんです。少し時間が取れたら、取れたら…。