Igorで使えるマクロを作ったのでみんなにも試してほしい

Igorで使えるマクロを頑張って組んだので、みんなに使ってほしい。

このページの一番下にマクロ原文を記載する。記載されている文字列をProcedureにコピペしてCompileすれば使える。
以下に使い方を簡単に書く。わからなければコメントで聞いてください。

まずIgorを開いて、コマンドプロンプトに

benri()

と打ち込む。

すると

こんなかんじのポップアップする。

適当なグラフをプロットして、

「グラフ処理ボタン(ρ-T)」を押すと

このように体裁が整う。さらに、これでは見にくいので「Y軸対数表示」ボタンを押すと

こんな風に対数にしてくれる。線形に戻したいときは「Y軸線形表示」ボタンを押せばよい。もちろんX軸にも対応している。
ただこれでは色がわかりづらい。ここで「赤⇒青(7色まで)」ボタンを押せば色がつく。ついでに「凡例」ボタンも押して凡例もつけちゃう。

ちなみにカラーリングの「赤⇒赤(12色)」は研究段階にある(赤⇒赤を13等分してその12色を使うことで色相図を一周しようとした)。
ぜひ使ってみてください。スケール設定とかもできます。

以下スクリプト↓

#pragma TextEncoding = "UTF-8"

#pragma rtGlobals=3				// Use modern global access method and strict wave access
#pragma DefaultTab={3,20,4}		// Set default tab width in Igor Pro 9 and later




Function GraphTukuru(ctrlName)
	String ctrlName
	ModifyGraph mode=4, marker=19, msize=1, lsize=1
	Label bottom "\Z18 \f02 T\f00\Z18 (K)"
	Label left "\Z18 \f02 ρ\f00\Z18 (Ωcm)"
	ModifyGraph width= { Aspect ,1.2 } , height = 300
	ModifyGraph tick=2, fSize=16
	ModifyGraph mirror=1
End




Function Hanrei(ctrlName)
	String ctrlName 
	Legend/C/N=text0 /F=0
	
End




Function YLognisuru(ctrlName)
	String ctrlName
	ModifyGraph log(left)=1
End




Function XLognisuru(ctrlName)
	String ctrlName
	ModifyGraph log(bottom)=1
End




Function YLinearnisuru(ctrlName)
	String ctrlName
	ModifyGraph log(left)=0
End




Function XLinearnisuru(ctrlName)
	String ctrlName
	ModifyGraph log(bottom)=0
End




Function Autoscalekun(ctrlName)
	String CtrlName
	SetAxis/A
End




Function Teionkun(ctrlName)
	String CtrlName
	SetAxis/A left
	SetAxis bottom 0,50
End




Function SaraniTeionkun(ctrlName)
	String CtrlName
	SetAxis/A left
	SetAxis bottom 0,10
End




Function SaraniSaraniTeionkun(ctrlName)
	String CtrlName
	SetAxis/A left
	SetAxis bottom 0,3
End




Function ColoringManager ( SelectedGraph )
	String SelectedGraph 
	Selectedgraph = StringFromList(0, WinList("*", ";", "win:1"))
	
	Variable i ;
	String Wave_Name ;
	
	

	For ( i = 0 ; (1) ; i += 1 )
		
		Wave_Name = WaveName(SelectedGraph,i,1) ; 
		
		
		if ( strlen ( Wave_name ) == 0 ) 
			return 0 ;
		endif
	
		Switch ( i )
		Case 0 :	// レッド
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) = ( 65280 , 0 , 0 ) ;
			Break ;
		Case 1 : 	// ブルー
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 0 , 0 , 65280 );
			Break ;
		Case 2 :	 // グリーン
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) = ( 0 , 39168 , 19712 ) ;
			Break ;
		Case 3 : 	// オレンジ
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 65280 , 32512 , 16384 );
			Break ;
		Case 4 : 	// パープル
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 26368 , 0 , 52224 );
			Break ;
		Case 5 : 	// ピンク
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 65280 , 16384 , 55552 )  ;
			Break ;
		Case 6 :	// ブラウン
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 39168 , 13056 , 0 );
			Break ;
		Case 7 : 	// ブラック
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 0 , 0 , 0 );
			Break ;
			
		EndSwitch ;




				 
	EndFor
	
	
	return 0




End




Function ColoringManager2 ( SelectedGraph )
	String SelectedGraph 
	Selectedgraph = StringFromList(0, WinList("*", ";", "win:1"))
	
	Variable i ;
	String Wave_Name ;
	
	
	
	For ( i = 0 ; (1) ; i += 1 )
		
		
		Wave_Name = WaveName(SelectedGraph,i,1) ; 
		
		
		if ( strlen ( Wave_name ) == 0 ) 
			return 0 ;
		endif
	
		Switch ( i )
		Case 0 :	
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) = ( 65535 , 0 , 0 ) ;
			Break ;
		Case 1 : 	
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 65535 , 28840 , 0 );
			Break ;
		Case 2 :	
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) = ( 65535 , 59198 , 0 ) ;
			Break ;
		Case 3 : 	
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 41513 , 655535 , 0 );
			Break ;
		Case 4 : 	
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 12673 , 65535 , 0 );
			Break ;
		Case 5 : 	
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 0 , 65535 , 17684 )  ;
			Break ;
		Case 6 :	
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 0 , 65535 , 48042 );
			Break ;
		Case 7 : 	
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 0 , 54187 , 65535 );
			Break ;
		Case 8 : 	
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 0 , 23828 , 65535 );
			Break ;
		Case 9 : 	
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 6529 , 0 , 65535 );
			Break ;
		Case 10 : 	
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 35369 , 0 , 65535 );
			Break ;
		Case 11 : 
			ModifyGraph/W=$SelectedGraph rgb( $Wave_Name ) =  ( 64233 , 0 , 65535 );
			Break ;
		EndSwitch ;




				 
	EndFor
	
	
	return 0




End








Function benri()
    NewPanel /W=(100,100,700,350) as "便利ボタン"
    Titlebox Comment1, pos={20,20},size={200,40}, title="グラフ成型"
    Button GraphModify,pos={20,60},size={100,30},proc=GraphTukuru,title="グラフ処理(ρ-T)"
    Button Hanrei,pos={20,100},size={100,30},proc=Hanrei,title="凡例"
    Titlebox Comment2, pos={160,20},size={200,40}, title="軸設定"
    Button YLog,pos={160,60},size={100,30},proc=YLognisuru,title="Y軸対数表示"
    Button XLog,pos={160,100},size={100,30},proc=XLognisuru,title="X軸対数表示"
    Button YLinear,pos={160,140},size={100,30},proc=YLinearnisuru,title="Y軸線形表示"
    Button XLinear,pos={160,180},size={100,30},proc=XLinearnisuru,title="X軸線形表示"
    Titlebox Comment3, pos={300,20},size={200,40}, title="スケール設定"
    Button AutoScale,pos={300,60},size={100,30},proc=Autoscalekun,title="オートスケール"
    Button Teion,pos={300,100},size={100,30},proc=Teionkun,title="0 K ~ 50 K"
    Button SaraniTeion,pos={300,140},size={100,30},proc=SaraniTeionkun,title="0 K ~ 10 K"
    Button SaraniSaraniTeion,pos={300,180},size={100,30},proc=SaraniSaraniTeionkun,title="0 K ~ 3 K"
    Titlebox Comment4, pos={440,20},size={200,40}, title="カラーリング"
    Button Color1,pos={440,60},size={100,30},proc=ColoringManager,title="赤⇒青...(7色まで)"
    Button Color2,pos={440,100},size={100,30},proc=ColoringManager2,title="赤⇒赤...(12色)"
End

			

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です