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
