Shigeru Hanano (花野 滋)
Rのggplot2でグラフを描く

Rのggplot2でグラフを描く

Shigeru Hanano (花野 滋)

以前にも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


他にも様々な種類の作図ができるので、いろいろ試してみましょう。

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
Shigeru Hanano (花野 滋)
りっぱすぎる決心はきっと三日坊主になるから by ドラえもん