2012年4月28日土曜日

R: ヒストグラムの一部に色をつける

追記:書き直しました(2013/05/25)


ヒストグラムの一部に色をつける関数を書いた。
あまりエレガントなやり口とはいえないが……


使い方)
R のコンソールに以下をコピーして貼り付ける↓
 histcol <-function(data,part,haba, iro="#0080ff", honsu=20){
  xv0 =seq(part[1],part[2],haba)
  xv =sort(rep(xv0,2))
  xv =xv[-c(1,length(xv))]
  yv=numeric(0)
  for(k in  1:(length(xv0)-1)){
    yv  =c(yv, rep(length(data[data >= xv0[k] & data < xv0[k+1]]),2))
  }
polygon(c(xv, rev(xv)) ,c(rep(0,length(yv)), rev(yv)), col=iro ,density=honsu, border = NA)
}
引数 part に色をつける範囲を x 座標で入力、引数 haba にヒストグラムの幅を入力する。
ヒストグラムの幅はヒストグラムを描いてみて目で見て確認する。
iro は線の色、honsu は線の本数。


使用例)

x <- rnorm(100)
#png("survreg.png")
hist(x)
histcol(data=x,part=c(-1,1),haba=0.5)
#dev.off()
 


0 件のコメント:

コメントを投稿