2015-01-04

ボックスプロットの作成

R によるグラフ作成の復習の第二弾の今回は、ボックスプロットです。以前の記事は下記の通りです。

今回も、ファイル選択ダイアログを加えました。例に使用したデータは sample_box.csv.zip からダウンロードできるようにしてあります。ご興味があれば、展開してご利用下さい。

require("tcltk")

###############################################################################
# chart.boxplot
###############################################################################
chart.boxplot <- function(tbl, x.val, y.val, gTitle = "", x.label = "", y.label = "") {
  tmp <- data.frame(x = tbl[, x.val], y = tbl[, y.val])
  y_max <- max(tmp$y, na.rm = TRUE)
  y_min <- min(tmp$y, na.rm = TRUE)
  y.limit <- c(y_min, y_max)
  
  boxplot(y ~ x, data = tmp, ylim = y.limit,
          main = gTitle, xlab = x.label, ylab =y.label,
          col = "LightBlue", cex.main = 1, outcol = "Orchid")
}

###############################################################################
# open.png
###############################################################################
open.png <- function(img.name, pic.width = 640, pic.height = 400) {
  png(filename = img.name, width = pic.width, height = pic.height,
      units = "px", pointsize = 14, bg = "white", res = NA)
}

###############################################################################
# MAIN
###############################################################################

# READ CSV DATA
file.name <-tclvalue(tkgetOpenFile(filetypes="{{CSV} {.csv}}", title="Open CSV file"))
tbl.data <- read.csv(file.name, header = T, as.is = T)

# generate BOXPLOT
head.x <- names(tbl.data)[1]
head.y <- names(tbl.data)[2]
title.box <- paste("SAMPLE (n = ", length(tbl.data[, head.x]), ")", sep = "")
label.x <- "Condition"
label.y <- "Measurement"
chart.boxplot(tbl.data, head.x, head.y, title.box, label.x, label.y)

# generate PNG FILE
open.png("sample_boxplot.png")
chart.boxplot(tbl.data, head.x, head.y, title.box, label.x, label.y)
dev.off()

# ---
# END PROGRAM

Fedora での実行例です。

$ R

R version 3.1.2 (2014-10-31) -- "Pumpkin Helmet"
...
(省略)
...
 'q()' と入力すれば R を終了します。 

> source("boxplot.R")
 要求されたパッケージ tcltk をロード中です 
> 

スクリプトを実行するとファイル選択ダイアログが表示されます。

画面に表示されるボックスプロットです。

カレントディレクトリに PNG 形式で保存されたボックスプロットです。

 

0 件のコメント: