Rで2次元ヒストグラム

Rで2次元ヒストグラムを書く。

hist2db<-function(x,y,kugirix,kugiriy){


	sx<-kugirix[1:(length(kugirix)-1)]
	sy<-kugiriy[1:(length(kugiriy)-1)]	
	
	fx<-kugirix[2:(length(kugirix))]
	fy<-kugiriy[2:(length(kugiriy))]

	counts<-0
	i1<-0
	i2<-0
	j1<-0
	j2<-0
	sur<-0
	density<-0
	k<-1
	mat<-matrix(0,length(sy),length(sx))
	for(i in 1:length(sx)){
		

		for(j in 1:length(sy)){
			

			counts[k]<-length(x[x>=sx[i] & x<fx[i] & y>=sy[j] & y<fy[j] ])
			i1[k]<-sx[i]
			i2[k]<-fx[i]
			j1[k]<-sy[j]
			j2[k]<-fy[j]
			sur[k]<-(fx[i]-sx[i])*(fy[j]-sy[j])		
			density[k]<-counts[k]/sur[k]	
			mat[j,i]<-density[k]		
			k<-k+1;
			
			#mat[i,j]<-counts[k]
		}
	
	}
			density<-density/length(counts)
			mat<-mat/length(counts)
                 
			#mat		
			list(data.frame(i1,i2,j1,j2,sur,counts,density),mat)
			#image(sort(unique(t[[1]][,3])),sort(unique(t[[1]][,1])),log(t[[2]]),log="xy")		

}




#x<-rnorm(1000)
#y<-rnorm(1000)

#a<-read.csv("100000_r10.dat")
dy<-1.6^(0:51)
dx<-1.6^(0:19)
x<-a[,5]
y<-a[,2]



t<-hist2db(y,x,dy,dx)

#image(log(t[[2]]))

image(sort(unique(t[[1]][,3])),sort(unique(t[[1]][,1])),log(t[[2]]),log="xy")