Rで作図
このページでは、Rでの作図方法について掲載します。データハンドリングともかぶるところがあるかも。
更新履歴:とりあえず移転
2011年2月13日からのアクセス数: -
R でのグラフの作り方は、(一つの画面に何枚の図を描くかの指定)→ 高水準作図→ 低水準作図という順番に行います。
よく使う作図関数
- hist(): ヒストグラム。一変量の分布の形を見るのに使う。
> d <- read.csv("data.csv")
> hist(d$omosa) #omosaのヒストグラムが表示される。
- boxplot(): 箱ひげ図。カテゴリーごとの一変量の分布を見るのに使う。カテゴリーは何層にも階層化できる。
> boxplot(ha ~ syori, d)
> #(描画する値 ~ カテゴリー, データフレーム名)
#二重カテゴリーでもできる例を示す
> d$CO2 <- rep(c("A", "B"), 112)
> boxplot(ha ~ syori + CO2, d)
- plot(): 散布図。二変数の関係を見るのに使う。
> plot(ha ~ ne, d)
#カテゴリーごとに色やシンボルを変える
> plot(ha ~ ne, pch=as.numeric(syori),
+ col=as.numeric(syori), d)
#pchはシンボルを数字で指定、colは数字や色名で色を指定。
#数字と指定できるシンボル、色の対応を見るためには、
> library(Hmisc)
> show.pch() #warnings()が出ますが無視していいです
> show.col()
#事前に色を指定しておくことも可能
#カテゴリーがアルファベット順に処理されることを利用。
> iro <- c("black", "red", "blue")
> plot(miki ~ omosa, xlim=c(0, 7), ylim=c(0, 2),
+ pch=as.numeric(d$syori)-1,
+ col=iro[as.numeric(d$syori)], d)
#iro[*] とすると、iro の*番目に入れた色が使われます。
#as.numeric() で各カテゴリーを数字化して指定。
- xyplot(): カテゴリー別の散布図。library(lattice)に収録。
> library(lattice)
> xyplot(ha ~ ne | syori, d)
> #(formula | カテゴリー名, データフレーム名)
> xyplot(ha ~ ne | syori + CO2, d)
> #当然カテゴリーは階層化できる。
- pairs(): データフレーム全ての列の組み合わせの散布図。
> d <- read.csv("data.csv")
> pairs(d)
#この場合も色やシンボルをカテゴリーごとにすることができる。
> pairs(d, pch=as.numeric(d$syori),
+ col=as.numeric(d$syori))
作った図の保存の仕方
- ゐんどーづの場合:作った図の上で右クリックして、ビットマップにコピーを選び、コピーする。そして、ペイントなどに貼り付けて、ファイルとして保存する。
- コマンドラインから指示する場合:dev.copy()を使う。
PDFファイルとして出力する場合。
#作図する
> dev.copy(pdf, file="好きなファイルネーム.pdf")
> dev.off() #作図後すぐに行うのがコツ
PNGファイル(GIFとほぼ同等。ただしより高機能)
#作図する
> dev.copy(png, file="好きなファイルネーム.png",
+ width=500, height=500)
#widthとheightは適当に。
> dev.off() #作図後すぐに行うのがコツ
ちなみに、作った図のフォントのタイプを変えたい場合、斜体か、太字か、ゴシックかぐらいは作図のときに指定できるが、もう少し細かい指定は、
#作図する
> dev.copy(pdf, file="好きなファイルネーム.pdf",
+ family="Times")
> dev.off()
というように、family=""の中に指定をすると変更できる。ちなみに、これはPDFファイルの場合のみ有効な指定らしい。
また、PDFでは特に明示しない場合、縦横比が1:1の図が生成されるが、これを変えたい場合は縦と横の相対的な長さの比率をwidthとheightで与えてやる。
#作図する
> dev.copy(pdf, file="好きなファイルネーム.pdf",
+ family="Times", width=10, height=5)
> dev.off()
最終更新:2011年02月13日 13:26