Rでプロット



東京大学 新領域創成科学研究科
  情報生命科学専攻 修士二年
          福永 津嵩
自己紹介
• 東大柏キャンパスで完全Dryな研究

• 研究テーマはRNA二次構造、メダカの行動




• Twitterアカウントは@fukunagaTsu
本日の概要
1.なぜRで図を描くのか?

2.plotの基本

3.補足的なトピックス
1.なぜRで図を描くのか?
Excelで良くないですか?
○よくある質問

「Rとか難しくてよくわからないんですよね。
図を描くなんてExcelでやればいいじゃない
ですか?」
                        700


                        600


                        500


                        400
          Expectation




                        300


                        200


                        100


                         0
                              0   100   200          300   400   500   600    700
                                              Real




                                                                             Excelで作った図達
では、そもそも
「なぜ、Rで図を描くのですか?」

       ↓

「なぜ、図を描くのですか?」
生物学で図を描く理由
1.理解するため
 –   データの基本的性質・特徴を視覚化する事で理解する
 –   ヒストグラム、スキャッタープロット、バープロット、
     etc




2.主張するため
 –   結果をクリアに示す図を作る事で、主張を正当化する
 –   凝った図
1.理解するための図を作る
いっぱい図を作った方がデータに対しての
理解を深められる
(新しいデータに対してはまずヒストグラ
ム!)



Excelで手作業するのではなく、Rを使って
高速に大量に図を作った方が良い
2.主張するために図を作る
結果をクリアに主張する凝った図を作りたい
 – プロットの種類、色、線の太さ、文字の大きさ、位
   置etc..




Rなら公開されている多様なパッケージを用いる
事で、凝った図を作る事が可能
Rを使う事で図の細かい仕様を調整可能
Rで出力出来る色々な図




      RjpWiki グラフッィクス参考実例集より
2.plotの基本
plotの基本
Rで図を描くには、plot()を用いる

plot(“x軸のベクトル”、”y軸のベクトル”)

Ex)
 x<-c(1:10)
 y<-c(10:1)
 plot(x,y)
テキストファイルから図を読み込
      んでplot
人工的なデータでなく、実際のデータを用いてplot
してみる

Ex) 東京の月ごとの平均降水量
 tokyo_rainfall<-scan(“ファイルのパス”)
 month<-c(1:12)
 plot(month,tokyo_rainfall)
これでは図としてイマイチなので、
    図を見やすくする

1.折れ線グラフにする

2.グラフの色を変更する

3.軸に名前、グラフにタイトルをつける
折れ線グラフにする
 plot(month,type = “l”,tokyo_rainfall)




細いので太くする
 plot(month,type = “l”,
 lwd = 3,tokyo_rainfall)
様々な変更が可能
点プロットと線プロットの重ね書き
 plot(month,type = “b”,
 tokyo_rainfall)




線を点線にする
 plot(month,type = “l”,lty = 2,
 tokyo_rainfall)
グラフの色を変更する
 plot(month,type = “l”,lwd = 3,tokyo_rainfall,col=“red”)




RGB形式で指定する事も可能
(こちらを推奨、理由は後述)
 plot(month,type = “l”,lwd = 3,
 tokyo_rainfall,col=c(„#FF2800‟))
同じく、色々付け加える

plot(month,type = “l”,
lwd = 3,tokyo_rainfall,
col=„FF99A0‟,
main=“東京の月別平均
降水量”,xlab=“月”,
ylab=“平均降水量”)
札幌と那覇の降水量と比較したい
重ね書きをするには、par(new = T)を用いれば良い



Ex)
//ファイルの読み込み
  plot(month,tokyo_rainfall,〜)
  par(new=T)
  plot(month,sapporo_rainfall,〜)
  par(new=T)
  plot(month,naha_rainfall,〜)
plotまとめ
基本はplot(x,y)で描く事が出来る

()の内側に色々追加していく事で、細かい変
更が出来る

慣れないうちは一気にパラメーターを追加
するのではなく、1個ずつ加えていくのが
良いと思います。
良くある質問
Q.「こんな細かいオプション、覚えられな
いのだけど」

A.覚える必要はありません。”R plot”で検索
すれば、これらグラフィックスパラメー
ターの設定法のページが見つかります
3.補足的なトピックス
棒グラフを描く
棒グラフを描くにはbarplot()を用いる

Ex)
  pt<-matrix(scan(〜),3,10)
  color<-heat.colors(3)
  par(mar = c(6,6,5,6))
  name<-
  c(“T17”,”S10”,”S20”,”S30”,”S40”,”S50”,”S60”,”H7”,”H17”,”H22”)
  barplot(pt,names.arg = name,col = color,cex.name = 0.6)
  par(xpd = TRUE)
  legend(par()$use[2], par()$use[4],c(“〜15”,”16〜64”,”65〜”),col =
  color, pch = 15)
ヒストグラムを描く
ヒストグラムを描くにはhist()を使う

Ex)
 fs<-scan()
 ts<-scan()
 hist(ts,col = “FF280040”
 ,border = “FF2800”)
 hist(fs,col = “0041FF40”,border =
 “0041FF”,add=TRUE)
ラスタ形式とベクタ形式について
○ラスタ画像
画像を点の集合として表現
bmp, jpg, png, gif

○ベクタ画像
画像上の図形を数式で表す
<circle cx="100" cy="100" r="50" stroke="blue"
fill="white" stroke-width="5"/>
eps, svg (epsがそのままTEXに貼付けられよい)
色の指定方法について
赤緑色盲→Y染色体上に原因のある色盲

欧米人で12人に1人、日本人で20人に1人

グラフを作る際は、バリアフリーカラー
(RGB値を直接指定)を使う事が推奨されま
す
まとめ
• データをきちんと理解するため、また良い論
  文にするために、Rによる作図は非常に強力

• 基本はそれほど難しくない(慣れないうちは
  大変ですが。。)

• 凝った図を作ろうとすると、結構大変ですが、
  その頃には学習障壁はあまりないはず。

Rでプロット