wineをつかってlinuxでigorPro

Linux(ubuntu)でigorProを使いたい.
そこで,wine(linux上でwindowsソフトを走らせられるソフト)
を利用してigorを使う.

(1)unbuntu をアップロード
(2)apt-get install wine
(3)CD-ROMを表示してigorProのseup.exe をクリック
(4)igor起動後標準フォントをArialに.

これでだいたいOK.
文字化けの問題はあるが,かなりWindowsどうり使える.

igorで2つの等高線を重ねる

Window lnorm_e_d_s_moto() : Graph
	#Parameter
	##Filename
	String header="test1"
	String header2="test2"
	##Folder name 
	String dir1234="C:Documents and Settings:"
	##Levels 
	make /O/N=100 kugiri3
	make /O/N=100 kugiri3A
	kugiri3=0.5*x
	kugiri3A=0.5*x
	
	
	#Program
	String filename=dir1234+header+"1.dat"
	String mat_wave1="matrix"+header
	String mat_wave1b="matrix"+header+"0"
	String mat_wave2="x1_"+header
	String mat_wave2b="x1_"+header+"0"
	String mat_wave3="y1_"+header
	String mat_wave3b="y1_"+header+"0"
	loadwave /M/G/N=$mat_wave1/O filename
	
	String filenameA=dir1234+header2+"1.dat"
	String mat_wave1A="matrix"+header2
	String mat_wave1bA="matrix"+header2+"0"
	String mat_wave2A="x1_"+header2
	String mat_wave2bA="x1_"+header2+"0"
	String mat_wave3A="y1_"+header2
	String mat_wave3bA="y1_"+header2+"0"
	loadwave /M/G/N=$mat_wave1A/O filenameA

	print mat_wave1bA
	String filename2=dir1234+header+"2.dat"
	loadwave /G/N=$mat_wave2/O filename2
	
	String filename3=dir1234+header+"3.dat"
	loadwave /G/N=$mat_wave3/O filename3
	
	print mat_wave1bA
	String filename2A=dir1234+header2+"2.dat"
	loadwave /G/N=$mat_wave2A/O filename2A
	
	String filename3A=dir1234+data_d_e_s_2+"3.dat"
	loadwave /G/N=$mat_wave3A/O filename3A
	
	
	
	 Display;AppendMatrixContour $mat_wave1b vs {$mat_wave2b,$mat_wave3b};DelayUpdate
       ModifyContour  $mat_wave1b rgbLines=(65280,0,0),manLevels=kugiri3,labels=0
       AppendMatrixContour $mat_wave1bA vs {$mat_wave2bA,$mat_wave3bA};DelayUpdate
       ModifyContour  $mat_wave1bA rgbLines=(0,0,0),manLevels=kugiri3A,labels=0
	ModifyGraph log=1
	ModifyGraph fSize=25
	Label left "Y";DelayUpdate
	Label bottom "X"
	ModifyGraph standoff(bottom)=0
	ModifyGraph tick(bottom)=2
	ModifyGraph standoff(left)=0
	ModifyGraph tick(left)=2
	ModifyGraph mirror=1
	
EndMacro

igorで複数の図をひとつにまとめる。特に枠の消し方。

例. 枠消しはF=0.

Window sales_indegree() : Layout
	PauseUpdate; Silent 1		// building window...
	Layout/C=1/W=(35.25,60.5,536.25,468.5) sales_indegree_2d_c(71.25,69.75,522.75,411.75)/O=1
	Append Graph0(296.25,204.75,486.75,341.25)/O=1/F=0/T
EndMacro

igorで行列データの等高線

loadwave M:行列、G:一般テキスト、 N:ファイル指定。
kugiri3:区切りウェーブ。
data11.dat : 行列
data12.dat : x列の長さベクトル
data13.dat : y列の長さベクトル
ディレクトリ: C:Users:username:Documents:

Window scale_2d() : Graph
	String header="data1"
	String filename= "C:Users:username:Documents:"+header+"1.dat"
	loadwave /M/G/N=a1 filename

	String filename2= "C:Users:username:Documents:"+header+"2.dat"
	loadwave /G/N=b1 filename2
	
	String filename3= "C:Users:username:Documents:"+header+"3.dat"
	loadwave /G/N=c1 filename3
	
	
	 Display;AppendMatrixContour a10 vs {b10,c10};DelayUpdate
       ModifyContour a10 rgbLines=(0,0,0),manLevels=kugiri3,labels=0
	ModifyGraph log=1
	
	
EndMacro

よりきちんと。

Window scale_2db() : Graph
	String header="s_mawaris_21_"
	String filename= "C:Users:username:Documents:"+header+"1.dat"
	String mat_wave1="matrix"+header
	String mat_wave1b="matrix"+header+"0"
	String mat_wave2="x1_"+header
	String mat_wave2b="x1_"+header+"0"
	String mat_wave3="y1_"+header
	String mat_wave3b="y1_"+header+"0"
	loadwave /M/G/N=$mat_wave1/O filename

	print mat_wave1b
	String filename2= "C:Users:username:Documents:"+header+"2.dat"
	loadwave /G/N=$mat_wave2/O filename2
	
	String filename3= "C:Users:username:Documents:"+header+"3.dat"
	loadwave /G/N=$mat_wave3/O filename3
	
	
	 Display;AppendMatrixContour $mat_wave1b vs {$mat_wave2b,$mat_wave3b};DelayUpdate
       ModifyContour  $mat_wave1b rgbLines=(0,0,0),manLevels=kugiri3,labels=0
	ModifyGraph log=1
	ModifyGraph fSize=25
	Label left "Y";DelayUpdate
	Label bottom "X"
	ModifyGraph standoff(bottom)=0
	ModifyGraph tick(bottom)=2
	ModifyGraph standoff(left)=0
	ModifyGraph tick(left)=2
	ModifyGraph mirror=1

EndMacro



さらにきちんと

Window scale_2db() : Graph
	#Parameter
	##Filename
	String header="test_"
	##Folder name 
	String dir1234="C:Documents and Settings:user1:My Documents:"
	##Levels 
	make /O/N=100 kugiri3
	kugiri3=0.5*x
	
	#Program
	String filename=dir1234+header+"1.dat"
	String mat_wave1="matrix"+header
	String mat_wave1b="matrix"+header+"0"
	String mat_wave2="x1_"+header
	String mat_wave2b="x1_"+header+"0"
	String mat_wave3="y1_"+header
	String mat_wave3b="y1_"+header+"0"
	loadwave /M/G/N=$mat_wave1/O filename

	print mat_wave1b
	String filename2=dir1234+header+"2.dat"
	loadwave /G/N=$mat_wave2/O filename2
	
	String filename3=dir1234+header+"3.dat"
	loadwave /G/N=$mat_wave3/O filename3
	
	
	 Display;AppendMatrixContour $mat_wave1b vs {$mat_wave2b,$mat_wave3b};DelayUpdate
       ModifyContour  $mat_wave1b rgbLines=(0,0,0),manLevels=kugiri3,labels=0
	ModifyGraph log=1
	ModifyGraph fSize=25
	Label left "Y";DelayUpdate
	Label bottom "X"
	ModifyGraph standoff(bottom)=0
	ModifyGraph tick(bottom)=2
	ModifyGraph standoff(left)=0
	ModifyGraph tick(left)=2
	ModifyGraph mirror=1

EndMacro

ファイル出力用 R スクリプトの例

matmat<-function(x,y,z,kugirix=27,kugiriy=27,nlevels=10,xlim=-1,ylim=-1,add=F, plot=T,col=1,base=exp(1),levels=NULL,file="abcdefghijklmn"){
dimx<-exp(seq(min(log(x)),max(log(x)),length.out=kugirix))
dimy<-exp(seq(min(log(y)),max(log(y)),length.out=kugiriy))
mat1<-matrix(nrow=(kugirix-1),ncol=(kugiriy-1))
mat2<-matrix(nrow=(kugirix-1),ncol=(kugiriy-1))
mat3<-matrix(nrow=(kugirix-1),ncol=(kugiriy-1))





for(i in 1:(length(dimx)-1)){

	
	for(j in 1:(length(dimy)-1)){
		mat1[i,j]<-0
		mat2[i,j]<-0
		d123<-z[x>=dimx[i] & x<dimx[i+1] & y>=dimy[j] & y<dimy[j+1]]
		
		mat1[i,j]<-median(log(d123[d123!=0],base=base))
		
		mat2[i,j]<-(log(length(d123[d123!=0]),base=base))
		mat3[i,j]<-(log(mean(d123[d123!=0]),base=base))

	}

}

	if(plot==T){

	
			contour(x=dimx[1:(length(dimx)-1)], y=dimy[1:(length(dimy)-1)],z=mat1,add=add,log="xy",nlevels=nlevels,col=col,levels=levels)
		
			#contour(x=dimx[1:(length(dimx)-1)], y=dimy[1:(length(dimy)-1],z=matmat1,log="xy")		

	}
	mid_x<-sqrt(dimx[1:(length(dimx)-1)]*dimx[2:(length(dimx))])
	mid_y<-sqrt(dimy[1:(length(dimy)-1)]*dimy[2:(length(dimy))])

	if(file!="abcdefghijklmn"){
		#mat1
		#mat3
		write.table(file="test_1.dat",mat1,col.names=F,row.names=F,na="NAN")
		write.table(file="test_2.dat",data.frame(mid_x),col.names=F,row.names=F,na="NAN")
		write.table(file="test_3.dat",data.frame(mid_y),col.names=F,row.names=F,na="NAN")
				

	}

	list(mat1,mat2,mat3,dimx,dimy,mid_x,mid_y)
}