FAMOS
マーカー(データコメント)に関するFAQ
Qすべての極大値、極小値にマーカーを表示したい。
複数個所のマーカーを一度に打つことはできませんのでループ文で1つずつマーカーを設定していく必要があります。すべての極大値、極小値はxMax()関数により取得することができます。
例)
Data = Sin(Ramp(0, 0.001, 1000)*PI2*9)*Sin(Ramp(0, 0.001, 1000)*PI2*0.5) ; サンプルデータ
_maxX = xMax(Data, Min(Data)) ; 極大値のX座標
_maxY = Value(Data, _maxX); 極大値
_minX = xMax(-Data, Min(-Data)) ; 極小値のX座標
_minY = Value(Data, _minX); 極小値
_XYmin = XYof(_minX, _minY)
; カーブウィンドウを表示
CwNewWindow("Cv1", "show")
CwSelectWindow("Cv1")
CwAction("reset")
CwPosition(0,0,640,480)
CwNewChannel("append last axis", Data)
; マーカーの表示
_nnn = Leng?(_maxY)
for _iii = 1 to _nnn step 1
CwNewElement("marker")
CwMarkerSet("x.type",1)
CwMarkerSet("x", _minX[_iii] ) ; マーカーを描画する位置のX座標
CwMarkerSet("y.type", 1)
CwMarkerSet("y", _minY[_iii]) ; マーカーを描画する位置のY座標
CwMarkerSet("text","〈auto〉");〈auto〉=X座標とY座標を表示
CwNewElement("marker")
CwMarkerSet("x.type",1)
CwMarkerSet("x", _maxX[_iii] ) ; マーカーを描画する位置のX座標
CwMarkerSet("y.type", 1)
CwMarkerSet("y", _maxY[_iii]); マーカーを描画する位置のY座標
CwMarkerSet("text","〈auto〉");〈auto〉=X座標とY座標を表示
CwMarkerSet("angle", -45)
end
同様の例としまして表示数を上位10個までに限定したサンプルパネルがこちらにありますので、こちらも合わせてご参照ください。
Q最大値・最小値のマーカーを表示したい。
カーブウィンドウメニューの[編集]>[マーカ]>[最大/最小のマーカ]で最大値、最小値の値がマーカで表示できます。
X値も表示したい場合は、下記の様なシーケンスで表示することができます。
例)
Data = Sin(Ramp(0 0.001, 1000)*PI2*9)*Sin(Ramp(0, 0.001, 1000)*PI2*0.5) ; サンプルデータ
_minY = Min(Data) ; 最小値
_minX = Pos(Data, _minY) ; 最小値のX座標
_maxY = Max(Data); 最大値
_maxX = Pos(Data, _maxY); 最大値のX座標
; カーブウィンドウを表示
CwNewWindow("Cv1", "show")
CwSelectWindow("Cv1")
CwAction("reset")
CwPosition(0,0,640,480)
CwNewChannel("append last axis", Data)
; マーカーの表示
CwNewElement("marker")
CwMarkerSet("x.type",1)
CwMarkerSet("x", _minX ) ; 最小値のマーカーを描画する位置のX座標
CwMarkerSet("y.type", 1)
CwMarkerSet("y", _minY) ; マーカーを描画する位置のY座標
CwMarkerSet("text","〈auto〉") ; 〈auto〉=X座標とY座標を表示
CwNewElement("marker")
CwMarkerSet("x.type",1)
CwMarkerSet("x", _maxX ) ; 最大値のマーカーを描画する位置のX座標
CwMarkerSet("y.type", 1)
CwMarkerSet("y", _maxY) ; マーカーを描画する位置のY座標
CwMarkerSet("text","〈auto〉") ; 〈auto〉=X座標とY座標を表示
CwMarkerSet("angle", -45)