Last-modified: 2016-02-04 (木) 14:33:28
R/チートシート

フォルダ内にあるデータファイルを読み込み、自動でいい感じにグラフ化

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
-
|
|
|
|
|
|
|
|
|
|
|
!
 
-
!
 
 
-
|
|
|
|
|
|
|
-
!
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
|
-
!
|
|
|
-
!
|
|
|
|
-
!
|
|
|
|
-
!
|
|
-
!
|
|
# プロット関数
# 
# dataset:名前付きリスト(名前が凡例に使用される)
# xcol:X軸上に表示する列
# ycol:Y軸上に表示する列
# plot_type:タイプ(p,l,b,c,o,h,s,S,n)
# plot_title:タイトル
# plot_xlab:X軸ラベル
# plot_ylab:Y軸ラベル
# plot_las:ラベルの水平垂直
# plot_lwd:線分の幅
#
pab.plot <- function(dataset, xcol=1, ycol=2, plot_type="l", plot_title="", plot_xlab="", plot_ylab="", plot_las=1, plot_lwd=1)
{
    # 座標の最大値を取得
    dataset_len <- length(dataset)
    x <- c()
    y <- c()
    for (i in 1:dataset_len)
    {
        x <- append(x, max(dataset[[i]][xcol]))
        y <- append(y, max(dataset[[i]][ycol]))
    }
    x_max <- max(unlist(x))
    y_max <- max(unlist(y))
 
    # 描画
    par(mar = c(4.5, 5.5, 3, 2))    # 余白 底辺,左側,上側,右側
    cols <- c(1:dataset_len)
    pchs <- c(1:dataset_len)
    ltys <- c(1:dataset_len)
    for (i in 1:dataset_len)
    {
        plot(unlist(dataset[[i]][xcol]), unlist(dataset[[i]][ycol]), type=plot_type, ann=F,
            xlim=c(0, x_max), ylim=c(0, y_max),
            col=cols[i],    # 色
            pch=pchs[i],    # プロットの形
            lty=ltys[i],    # 線分の形式
            lwd=plot_lwd,    # 線分の太さ
            las=plot_las    # ラベルの水平垂直
        )
        par(new=T)
    }
    
    # タイトル
    title(main=plot_title, mgp=c(3, 1, 0), cex.main=2)
    title(xlab=plot_xlab, mgp=c(2.5, 1, 0))
    title(ylab=plot_ylab, mgp=c(4, 1, 0))
    
    # 凡例
    legend("topleft", legend=names(dataset), col=cols, pch=pchs, lty=ltys)
}
 
 
 
# データセットの読み込み
file_path <- list.files()[grep("\\.txt", list.files())]
dataset <- lapply(file_path, read.table, header=F)
names(dataset) <- sub(".txt", "", file_path)
 
 
# 描画
plot.new()
pab.plot(dataset, 1, 2, plot_type="l", plot_title="STL container push_back performance", plot_xlab="size(KB)", plot_ylab="cputime", plot_lwd=2)
 
# 保存
png("last.png")
pab.plot(dataset, 1, 2, plot_type="l", plot_title="STL container push_back performance", plot_xlab="size(KB)", plot_ylab="cputime", plot_lwd=2)
dev.off()

ヒストグラムを表示(手動)

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
 
 
-
!
 
 
-
!
data<-c(1,2,3,4,5,3,4,5,2,4,5,6,6,7,8,9,10)
 
# 階級を直接指定(summaryのmin, maxを使う)
summary(data)
hist(data, breaks=seq(1, 10, 1))
 
# アルゴリズムで
hist(data, breaks="Sturges")