ggplotの使い方

このページでは, Rのグラフィクスパッケージであるggplotのインストールの仕方と, 使い方の流れを解説していきます.

ggplotをインストールする

Rを開いて, 以下のように打てば, インストール出来ます.

install.packages("ggplot2", dependencies=TRUE)
            

ggplotの使い方の流れ

ggplotの基本的な使い方を解説してみようと思います. このページでは, 使い方の流れを説明していくつもりです. それぞれの関数の細かい使い方については, Rのカテゴリを参照して下さい.

基本的には,

  • ggplot2パッケージを読み込む
  • データを用意する.
  • 軸にするデータの種類を決める.
  • 描きたいグラフごとにggplotの関数を呼ぶ.

という流れになります.

では, 簡単に散布図を作ってみます. ちなみに, このページでは, データセットとしてRにデフォルトで入っているirisというデータセットを使用します.

> library(ggplot2)
> str(iris)
'data.frame':	150 obs. of  5 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
> p <- ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width))
> p + geom_point()
> ggsave(file="graph1.png")
            
ggsaveで保存されたグラフ1

では, 上のコマンドの流れを見ていきます.

まず1行目でggplot2パッケージを読み込んでいます. 読み込んでおかないと, ggplot2の関数は使えません.

2行目で, データセットirisがどのようなものかを確認しています. ここでは, irisの中には, 150個のサンプルがあって, それぞれ, Sepal.Length, Sepal.Width, Petal.Length, Petal.Width, Speciesの値を持っていることがわかります.

9行目で, ggplot()という関数に, データセット, x軸のデータの種類, y軸のデータの種類を設定しています. また, それを変数pに代入しています. これから図の描写をしますが, pを使って図を描いていきます.

10行目で, geom_point()という関数を使って, 散布図を描きます. 指定の仕方は, p+geom_point()と書くことで, pの設定で, 散布図を書くことになります.

11行目で, ggsave()関数を使って, graph.pngという画像ファイルとして保存しています.

上の例は散布図でしたが, 他の種類のグラフを書くときも, このような流れで書いていきます. では, 次に, 少し応用的な書き方をしてみたいと思います. この, irisというデータセットは, 3種類の花がサンプルとして使われているので, 散布図のプロットをそれぞれの花で色分けしてみたいと思います. また, 少し格好つけるために(実は, 格好いいかどうかは別として, 描写練習のためです), それぞれのプロットをグレーの枠で囲ってみたいと思います.

> p <- ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width))
> p + geom_point(colour="gray50", size=3) + geom_point(aes(colour=Species))
> ggsave(file="graph2.png")
            
ggsaveで保存されたグラフ2

では, 上のコマンドの解説をしたいと思います.

1行目に関しては, 先ほどと同じ意味です. もしpを先程の状態から何も変更していなければ, 書く必要もないです.

2行目は, 先ほどと大きく違いますね. まず, 着目すべきところは, この一行でプロットを2回描写しているということです. というのは, 最初に, 大きさ3(標準のサイズより少し大きい), 色がgray50の点をプロットし, 次に, 標準のサイズの, 花の種類によって色分けされた点をプロットしています. また, 1つ目のプロットでは, geom_point()の引数はaes()を使わずに指定しています. 両者の使い分けとしては, データのパラメータごとに色やサイズを変えたいときは, aes()を使い, 全ての点に同様の変更を施す時には, aes()を使わずに指定することになると思います.

大雑把な解説でしたが, 右図の作り方はこんな感じです. 少し補足をすると, グレーの枠はグレーの大きい円に, カラフルな小さい円を重ねることで表現しています. 重ねる順番を変えるとグレーの円しか見えなかったりするので, 気をつけてください. ちなみに, 図の右側の花の名前のガイドは自分で作ったわけではなく, 勝手についてくれます.

以上, ggplotの使い方の流れでした. その他の関数などの使い方は, このホームページのRカテゴリで扱っているので, 良ければ参考になさってください.

また, 下の画像からもその種類のグラフの作り方のページに飛ぶことができます.

散布図 ヒストグラム 棒グラフ

折れ線グラフ 要素ごとに比較したグラフ