![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-C9dCso-j6CHR34j1wF70gkjANV5T5w4ljh39CSyIxXrQZo_htOkL9fnVSDKTu58zvsCqyVK9c6ddWBQqVGgpXmIWt_UASVoC39LOCSOoDRRf6r7aGQSivPv104Z_sh10aIv21g/s320/Rlogo.png)
複数条件による測定データをボックスプロットにして表示するスクリプトを紹介します。データは CSV 形式で、一行目がヘッダーになっています。この例では一列目が条件、二列目がデータになっています。
# BOXPLOT SAMPLE
# =============================================================================
# chart.boxplot
# =============================================================================
chart.boxplot <- function(tbl, val_x, val_y,
gTitle = "", xLab = "", yLab = "") {
tmp <- data.frame(x = tbl[, val_x], y = tbl[, val_y])
y_max <- max(tmp$y, na.rm = TRUE)
y_min <- min(tmp$y, na.rm = TRUE)
yLimit <- c(y_min, y_max)
bp <- boxplot(y ~ x, data = tmp, ylim = yLimit,
main = gTitle, xlab = xLab, ylab =yLab,
col = "lightblue", cex.main = 1)
}
# =============================================================================
# open.png
# =============================================================================
open.png <- function(imgName, picWidth = 640, picHeight = 400) {
png(filename = imgName, width = picWidth, height = picHeight,
units = "px", pointsize = 14, bg = "white", res = NA)
}
# -----------------------------------------------------------------------------
# MAIN
# -----------------------------------------------------------------------------
# _____________________________________________________________________________
# READ CSV DATA
file.name <- "./sample_box.csv"
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
実行例
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggBYX_MwVuWEWQcMxVJVT4k_1cA7X0VZ0-7WBqbGjpmXhdjgYgZh37-ZZF4ujiQcdEuDRIVUy-0fKrVnmmqfMiMdAJBb6flHFkvyg3WdwjQBnJSRo49n9zb_slbmDrvvO3hTLxsg/s200/fedora.png)
Fedora で実行した例を示します。
$ R
R version 2.9.2 (2009-08-24)
Copyright (C) 2009 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
...
(途中省略)
...
'q()'と入力すればRを終了します。
> source("boxplot.R")
X Window 上では以下の様に表示されます。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTFPSPlNeXpVl8WIyR9Ck8WWyrRucfiSIRAowji8wYaYqi7pWbxLDsGsd_IjrAKUQoiRzmoMYueqVq445PzOq9gE7XCJ1B846BIEZsy3q4HTU1rkcSkerFcKIfgS9A3wruyC8_Yg/s320/boxplot.png)
出力された PNG ファイルはこんな感じになります。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLvh1mCm5zwlIMhrj8UMBPYRcisgybvm7ybK2Uy-cs_K2iZLjwqf5D8T9gvNNcRP2HpSpj6uwuGnqRLOtQ-jx-VJ9J9KnvvXXWYqIu09or9feZwgpCpMdQ-RohafFaGE9VPsUmlg/s320/sample_boxplot.png)
0 件のコメント:
コメントを投稿