ggplot2に関しては個人で作ったものはほとんどないので,昔Qiitaに書いた記事をベースに,他の方々が作成した資料のリンクを置くことにします。
ggplot2はtidyverseパッケージ群に含まれており,githubのリポジトリの場所およびドキュメントの場所が移っています。
まずはggplot2がどういうものなのかをつかみましょう。
ggplot2に初めて触れるという方は,まずこのスライドを一読されるのをおすすめします:
ggplot2を理解するためには,その文法をイメージできるようになることが近道です。このスライドは従来のplotとggplot2との違いをわかりやすく解説してあります。まずはレイヤーの感覚をつかむためにも,提示してあるサンプルをひたすら打ちましょう。手を動かす,大事。
先ほどのスライドの続きの位置づけで,ggplot2を実際に使った用例集として,主に心理系領域での場面を想定して用意してあります。ここにあるサンプルコードをひたすら打ちましょう。手を動かす,大事。
Rにもある程度慣れてて,上述のスライドにあるテストコードを打ち終わったら,こちらのスライドにチャレンジしましょう:
ちょっと難しく感じるところがあるかも知れませんが、諦めず最後まで読み通しましょう。このスライドはggplot2の基礎、そして今後自分で使いこなすために必要な知識が過不足なくつめ込まれているからです。このスライドで“Grammar of Graphics”の感覚をつかむためにも、サンプルコードをひたすら打ちましょう。手を動かす、大事。
ある程度イメージがつかめたら、コード写経ではなく自分でggplot2を描いてみましょう。R組み込みのデータから適当に見繕っていろんなplotをつくってみるといいでしょう。
しかし、いざ自分で一からggplot2を作っていこうにも、使用する関数や引数などわからないことがたくさんです。そこで、基本的な関数一覧などがまとまった資料を手元に置いておき、その都度確認しながら作業しましょう。
日常使いなら、できるだけコンパクトにまとまっていたほうが何かと楽ですね。RStudioが作成して公開しているチートシートが便利です:
非常にコンパクトにまとまっていて、使い勝手が非常に高いです。これを印刷して手元に置いてもいいのですが、RStudioの最新版ならメニューの“Help - Cheatsheet”から開くことができます。
最近注目を集めている書籍R for Data ScienseのWebドキュメント版に,ggplot2に関する記述があります:
こちらをみながら,実際に試してみるといいかと思います。
自分で色々plotしていくと、「いろいろ調べたけれどわからない」と行き詰まってしまうことがよくあります。そんな時は以下を参考にしてください。
「あなたが躓くところはきっと誰かも躓いている」ということで、現在Qiitaで上記タグをつけたプロジェクトが進行中です:
これがどういうプロジェクトなのかについては,以下のスライドを参照してください:
だいぶ記事がストックしてあるのですが,きっとまだまだあるはずです。小さなことでも大歓迎です。ぜひ投稿しましょう!。
Tokyo.Rの有志が中心となって運用している、Rお悩み相談チャットルームです3。利用方法はとても簡単で、メールアドレスを登録するだけです。詳しくは以下の記事をご覧ください:
ここには初心者用の部屋(#r_begginers)もありますし、ggplot2専用の部屋(#ggplot2)もあります。さらに上のスライドにある通り、質問が投下されると本当にスゴい方々があっという間に答えてくれます。わからなかったら、ぜひここで聞いてみましょう。コワクナイヨ!
ggplot2の特徴のひとつに,ggplot2に色んな物を追加する拡張パッケージが豊富であることが挙げられます。これらを利用すると,もっと便利にggplot2を使えますし,やりたいことができるようになったりします。
ただその数は膨大で,それを探していくのは大変です。そこで有志がそれを取りまとめたサイトを作成しています:
GalleryもしくはExtentionに進んでいくと一目瞭然かと思います。ぜひ一度チェックすることをおすすめします。
もちろん自分でggplot2を拡張することは可能です。これについてはggplot2のVignetteにExtending ggplot2
としてドキュメントが存在します:
ただしこれは全て英語であり,読むのが大変です。v2.0.0であれば,@yutannihilation
さんによる日本語訳されたドキュメントが公開されています:
多少異なる点はあるかと思いますが,イメージをつかむのにはいいかと思います。
これら全ての資料を作成して公開していただいている多くの方々に感謝します。
Enjoy!