#author("2024-05-16T13:28:06+09:00","default:okazaki","okazaki")
#author("2024-05-16T13:28:22+09:00","default:okazaki","okazaki")
#menu(howto/MenuBar)

* howto/Igor [#uc6a211f]
#contents

** 一行メモ [#d7ac51b4]
- Make/N=3101/D/O time_fs とすると、ポイント数を変更できるようだ?(/Oは上書きオプション、time_fsはtime_auから:=で計算されているが、ポイント数が大きく変更した場合でも、自動で計算されるようだ。 --  &new{2015-03-23 (月) 16:56:54};
- レイアウトにあるグラフを複数個、マウスでコピーして、Wordに貼り付けることができるようだ。 --  &new{2015-09-07 (月) 12:11:19};
- データフォルダ名に - (マイナス記号)は使わない用がよい。コピーが出来なかった。 --  &new{2016-09-16 (金) 12:18:05};
- グラフをずらして描く:グラフ→トレースアピアランスを修正→オフセットをチェックし、ずらす量を入れる。 --  &new{2018-10-20 (土) 18:48:23};
- データフォルダを変更する: メニューの データ->Data Browser で操作(そして下記の ReplaceWave allinCDF をする)。 --  &new{2024-05-16 (木) 13:27:45};
- データフォルダを変更する:メニューの データ->Data Browser で操作(そして下記の ReplaceWave allinCDF をする)。 --  &new{2024-05-16 (木) 13:27:45};

#comment

* データ [#x46cde1e]

** 空白で区切られたデータをウェーブとして読み込む [#w833b5f4]

(こちらを推奨)~
データ→ウェブをロード→一般テキストをロード。ここでファイルを選択→実行~
なお、#ではじまる行はコメントではなく無視される?

or

(勧めない)~
データ→ウェブをロード→ウェブをロード。ここでファイルを選択し、区切りテキストを選ぶ
→ 詳細ボタン。ここで制御文字としてスペースにチェック→戻る→実行

(補足)上書きでロードするとき、ポイント数が異なる場合:ポイント数が少なくても多くても読込はOK。なお、計算でウェブを作っている(:=)
ときは、少ないポイント数の倍は途中まで正しく計算する(エラーは出るが)。多い場合にどうなるかは試していない。

** ロードしたウェーブを加工してグラフを描きたい。 [#eba4b985]

データメニューで、一度、ウェーブを複製する。その後、
コマンドウインドウで、 
    'sqrt_aaftcf_05_10' = sqrt( 'ave_ave_ftcorrfunc_05_10' )
などとしてウェーブを作ってグラフを描く。= の代わりに、:= を使うと、元データの変更が反映されるらしい。 


** ウェーブを作成して、それを他のウェーブの和としたい。 [#pc675a12]

コマンドウインドウで、 
    Make/N=10/D sum_of_fene
などとして(するらしい)、ウェーブ (sum_of_fene) を作る。N=10の 10は行数。
(or メニューの データ→ウェーブを作成 からでも作れる。)
次に、コマンドウインドウで、 
    sum_of_fene:=fene03+fene04+fene05+fene06+fene07+fene08+fene09+fene10+fene11+fene12
とする。なお、:= を使っているので、元データの変更が反映される。
2乗は、val^2でできる。


** ウェーブを作成して、それを他のウェーブの和としたい (2)。 [#i199fcef]

文字列のウェーブ atomName, atomNameがあり、数字のウェーブ resSequenceがあったとする。
これを連結した文字列のウェーブ atomを作りたい時には、まず ウェーブatomを作る。次に、 
    atom:=atomName+" "+atomName+num2str(resSequence)
とする。 


** ウェーブを複製して、ウェーブ最初の点(0番目の値)との比を作りたい [#pbc82cf1]

 Duplicate Kine normKine  #ウェーブKineをnormKineの名前で複製
 normKine:=Kine/Kine(0)   #normKineの値を一律に1/Kine(0)倍にする。Kine(0)はウェーブKineの0点目の値


** 欠けている数値データの表現。 [#d49d2bbd]

NaN らしい。(c.f. 無限大は Inf らしい。) 


** データをスムージングする。 [#p94bace4]

解析→スムース、その後、例えば
ボックス (その点を中心として、区間で平均する) を選び、
繰返し (データの初めの部分、終りの部分について、区間に無いデータはその点の値を
利用する) を選び、
21 (入力する値は奇数。例えば、両側 10点+その1点=21で、平均する) を入力して、
実行する。(元データは上書きされるので、残したい場合、元データを複製しておく。) 


** データフォルダをコピーする [#zfdb94c1]

カレントデータフォルダをrootにしておいて、root:srcをdes名でrootにコピーするには次をする。
root以外も可である。
    DuplicateDataFolder  src, des


** ウェーブをコピーする [#kca9e68a]

    Duplicate  src, des


** ウェーブのデータをすべてゼロにする [#kca9e68a]

    ウェーブ名=0


* グラフ [#ld684133]

** グリッドや背景の色を変える。 [#uf7630ee]

何もない場所で隅を右クリック→カラー→グラフ背景 など


** タグを付ける(プロットに対して、ラベル等を加える(グラフの拡大縮小などに追従する)) [#y40b04dc]

グラフウィンドウで、何もない隅を右クリック→注釈→タグ

or

グラフメニュー→注釈を追加→タグを選択し、必要な項目を設定する。 (フォント、サイズ、プロットからの距離、
ウェーブ名を加えるか否か、オフスクリーンでタグを隠すかどうか、x座標表示、などなど) →実行ボタン
→生成したタグ上で、Alt(又はOption)+ドラッグし、他のプロットの部分でリリースすると、タグが移動する。
なお、既存のタグを、Double Clickして出るメニューから、タグの複製が可能。

捕捉. 注釈で 例えば、 
    \{"%s %s", atom(TagVal(0)), res(TagVal(0))} <\OX>
とすれば、X軸上のPointに対する他のウェーブの情報を表示できる。
ここで、x軸をPointとして、あるウェーブのグラフを描いているとする。この時、
atom及びresウェーブがあり、TagVal(0) ( 又は \OX ) でポイントを得てそれに対する情報を
出している。 

グラフが普通の二次元の場合、
    \F'Arial'\Z10\{"%.2f", eV(TagVal(0))}
だと、パスの指定 root:hoge:hoge:eV(TagVal(0))が出来らしいので、これよりも
    \F'Arial'\Z10\{"%.2f", TagVal(1)}
がよい。TagValの引数は、0:ポイント番号、1:x座標、2:y座標 を意味する。

また、複数のデータフォルダを利用したタグで、そのタグがはみ出るような場合は、ひとつのグラフを
使いまわして表示させるようなことは無理そうだ(X,Yオフセットが大きいとあつかいずらい)。


例2、
    \{ "%s %d", residue(TagVal(0)) , sequence(TagVal(0)) } 
で、"residue名 sequnce番号"を表示する。 

例3、
    \{ "%s", GetWavesDataFolder(TagWaveRef(),0) } 
で、"ウェーブのパス名"を表示する。 引数の0は、これ以外に 0~4が使える。

他、~
    \ONは、ウェーブ名になる。

*** タグの例 [#h037ec09]

 \F'Arial'\Z10\{ "%.2f", TagVal(1) }
 \F'Arial'\Z10\{ "%.2f", eV(TagVal(0)) }

 Tag/C/N=text1/F=0 intensity, 0,"\\{\"%.2f\", TagVal(1) }"

 Tag/C/N=text0/F=0/A=LT/X=6.67/Y=-861.93/TL={dash=1}/P=1 intensity, 148, "\\F'Arial'\\Z10\\{\"%.2f\", TagVal(1) }"


** 3Dのグラフ (Surface Plot) を描く。 [#m940f25f]

メニューのウィンドウ→新規→Surface Plotを選ぶ。 ~

(注) DepthCueは、チェックしないと、奥行きの表示がインチキになるようだ。

Scatter(点の分布)、Path(点を線で結ぶ)において、時系列に色を変化させるには以下のようにする。
    3次のウェーブを作成し、RBG値をセットして、これを利用する(線の色をこれで設定できる)。
    Make/N=(NumPnts(istep),3) tripletwave;
    tripletwave[][0]=Rcolor[p];tripletwave[][1]=Gcolor[p];tripletwave[][2]=Bcolor[p]

5次のウェーブを作成し、マーカーの種類、マーカーの大きさ、RBG値をセットして、これを利用する(点の色をこれで設定できる)。
    Make/N=(NumPnts(istep),5) makerwave;
    makerwave[][0]=19;      # 1 (+) or 19 (●) or 0, 2 など
    makerwave[][1]=3;       # 0は非表示となる
    makerwave[][2]=Rcolor[p];makerwave[][3]=Gcolor[p];makerwave[][4]=Bcolor[p]
(上の例で、istepは描く点の数と同等のサイズのウェーブ)

RBG値のウェーブ Rcolor, Gcolor, Bcolor は、予め作成して読み込んでおく。例えば rainbowRGB.c で作成する。


** 等高線プロットを描く。 [#j3a8a7ee]

2次元の行列のデータを読み込むには、"ウェーブをロード"のときに、 
"列を配列形式でロードする"をチェックする。後は適当にメニューで操作するとよい。 


** ReplaceWave allinCDF [#zc0cfd98]

データフォルダをいくつか利用してグラフを描いている時に便利。あるデータフォルダ内のウェーブでグラフを描いたとする。フォルダを移動したのち、このコマンドを実行すると、現在のデータフォルダ内のウェーブを利用して、グラフを再描画します (同じ名前のウェーブがなかった時には変更されない)。 
  ReplaceWave allinCDF  #とする


** グラフのY軸の位置を複数のグラフでそろえたい(Y軸の目盛りの数値ためグラフ毎に位置が変わるので) [#v4754cc1]

左側の余白をダブルクリック→余白→自動を3.00とかにする(全てのグラフで)。


** レイアウトのグラフを並べる [#z8ef766f]

レイアウト中のグラフを複数選択しておく→レイアウトのメニュー→整列→左詰、などとする。


** グラフウインドウを、A4一枚にプリントアウトする [#r255f8b4]

?グラフの余白をダブルクリック。幅モードを固定の26cm(26.5cm?)、
縦モードを固定の18cm(18.5cm?)にする(但し、LP-8400PS3)。 
LP-8300C (color laser)は、、、26.1<=value<26.5cm、18.1<=value<18.5 cm。
25.5<=value 


** グラフウインドウのサイズを固定する [#y0e1c187]

グラフの余白をダブルクリック→幅モードと高さモードを絶対値にすると、固定できる(拡大縮小の禁止)。
このままのサイズでプリントアウトもできる。

** 自由軸の移動 [#ied0e66f]

自由軸を Alt+マウスドラッグすることで、自由軸を動かすとともに横軸も調整できる。

自由軸を 単にマウスドラッグすると、自由軸だけが移動する。

(自由軸:本来の縦軸以外に出したもうひとつの縦軸)

* レイアウト [#l4b38759]

** グラフィックス保存 [#i8695e77]

グラフィックスを保存→拡張メタファイル(画像ファイルx8ではイマイチ)で、パスはダイアログとし保存。

** グラフ位置の正確な指定 [#ee92cf9d]

レイアウトのグラフをクリックすると、グラフ位置を数字で直接指定できる。

** テーブル [#c3befa88]

現在、項目なし


* その他 [#r4614f1f]

** ウィンドウ再構成マクロとして保存したマクロを削除する [#iaeb18a6]

メニューから、ウィンドウ→プロシージャウィンドウを開き、対象となるマクロ名を探しマクロの定義部分を削除する。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS