#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] メニューから、ウィンドウ→プロシージャウィンドウを開き、対象となるマクロ名を探しマクロの定義部分を削除する。