Rのggplot2でグラフを描く
以前にもRでグラフを描く例を紹介しましたが、今回はggplot2での作図を紹介したいと思います。
ggplot2のオフィシャルサイト
http://ggplot2.org/
今回は、ggplot2とreshape2のパッケージを利用しますので、まずこちらをダウンロードしておきましょう。
Rのメニューバーの「パッケージとデータ」>「パッケージインストーラ」もしくは下記コマンドでダウンロードします。
> install.packages("ggplot2")
> install.packages("reshape2")
では、まず下記のようなデータファイルを用意しましょう。
ここでは、野生株(Control)と変異体(mutant)、それぞれの4株ずつの植物体からクロロフィルを抽出し、クロロフィルAおよびBの含量を測定したとします。
尚、データはダミーで実在の変異体のデータではありません。
このファイルを、csvフォーマットで保存します。
例)ここでは、example.csvと名付けデスクトップに保存したとして解析を行っています。
Rを起動し、ファイルを保存したフォルダを作業ディレクトリーとして指定します。
> setwd("~/Desktop")
確認
> getwd()
[1] "/Users/hanano/Desktop"
データを読み込みます。
> data <- read.csv("example.csv", header = T)
データがきちんと読み込めたかどうかを確認します。
> head(data)
Type Chl_A Chl_B
1 Control 175526.5 115450.62
2 Control 188468.4 109462.79
3 Control 194398.9 119911.11
4 Control 166283.8 103661.60
5 mutant 50067.9 50468.94
6 mutant 52800.0 53116.28
# 最初の7行だけ確認できます。
> data
Type Chl_A Chl_B
1 Control 175526.54 115450.62
2 Control 188468.39 109462.79
3 Control 194398.87 119911.11
4 Control 166283.83 103661.60
5 mutant 50067.90 50468.94
6 mutant 52800.00 53116.28
7 mutant 51084.75 50662.31
8 mutant 45005.39 48205.32
# 全てのデータを確認できます。
データが多いときにはゴチャゴチャするので、通常headで確認するのがいいと思います。
パッケージを使うためのおまじない。
> library(reshape2)
> library(ggplot2)
ggplot2で利用できるように、データを変換します。
> df <- melt(data)
Using type as id variables
dfの中身を見てみると、以下のようなフォーマットになっています。
> df
Type variable value
1 Control Chl_A 175526.54
2 Control Chl_A 188468.39
3 Control Chl_A 194398.87
4 Control Chl_A 166283.83
5 mutant Chl_A 50067.90
6 mutant Chl_A 52800.00
7 mutant Chl_A 51084.75
8 mutant Chl_A 45005.39
9 Control Chl_B 115450.62
10 Control Chl_B 109462.79
11 Control Chl_B 119911.11
12 Control Chl_B 103661.60
13 mutant Chl_B 50468.94
14 mutant Chl_B 53116.28
15 mutant Chl_B 50662.31
16 mutant Chl_B 48205.32
まずはboxplotを描いてみます。
> g <- ggplot(df, aes(x = variable, y = value))
> g
> g <- g + geom_boxplot(aes(color =Type))
> g
> plot(g)
plot(g)は必要のない場合もあります。
図のウィンドウが開かないときには、
> quartz()
> g
png形式で保存したい場合には
> png("example.png")
> g
> dev.off()
quartz
2
TIFF形式で保存したい場合には
> tiff("example.tiff")
> g
> dev.off()
quartz
2
背景を透明にしたい場合
> g <- g + theme_classic()
> g
>
線を太くしたい場合
> g <- g + geom_boxplot(aes(color =Type), size =2)
デフォルトは 480x480なので、少し大きめのサイズで保存。
> png("example2.png", width = 600, height = 600)
> g
> dev.off()
x軸を植物タイプ、色をクロロフィルA、Bに入れ替えたい場合。
> g <- ggplot(df, aes(x = Type, y = value))
> g <- g + geom_boxplot(aes(color = variable), size =2)
> g <- g+ theme_classic()
> g
ドットで示したい場合
> g <- ggplot(df, aes(x = Type, y = value))
> g <- g + geom_point(aes(color = variable), size =2)
> g
グリッドで分割することもできます。
> g <- ggplot(df, aes(x = Type, y = value))
> g <- g + geom_point(aes(color = variable), size =2) + facet_grid(.~variable)
> g
他にも様々な種類の作図ができるので、いろいろ試してみましょう。