2017-01-31 7 views
2

私はxmgraceを使ってデータセットをプロットしました。私は2つのデータセットを一緒に追加したいと思います。xmgraceでデータセットを追加

だから私は2つのファイルがあります:

1 2 
2 3 
3 4 
... 

私はとxmgraceを開始

DATA1

1 1 
2 4 
3 9 
... 

DATA2を

xmgrace data1 data2 

次に、両方のファイルがプロットされているのがわかります。今、私は

1 3 
2 7 
3 13 
... 

私は、これは非常に簡単であることを知っているようなだけDATA1 + DATA2を第三のグラフを生成したいと思いますが、何らかの理由で、私はそれがどのように機能するかを理解していません。

Data-> Transformations-> Evaluate expression ...というフィーチャーでプレイしましたが、 "Source"と "Destination"として何を選択するのか分かりません。

PS:私の目標に到達するための他の多くの方法はわかっていますが、xmgraceでもやりたいと思っています。次のコマンドでウィンドウに>コマンド

タイプ

答えて

1
xmgrace data1 data2 

ゴー一つずつ。

s2 length s0.length 
s2.x = s0.x # Change s0.x to s0.x+s1.x if you want to add x too. 
s2.y = s0.y+s1.y 
redraw 
updateall 

またadd.comファイルにこれらのコマンドを追加し、データファイルと同じディレクトリに保存することができます。その後

ウィンドウ>コマンド>読む...>(負荷add.com)>リプレイ

1

xmgrace GUIを使用しても構いませんが、コマンドラインですべてを実行したい場合、Sathyamの答えは素晴らしいです。いくつかの方法があります。

回答:ここで はそれを行うための一つの方法である:

paste -d ' ' data1 data2 | awk '{print $1,$2+$4}' | xmgrace -pipe data1 data2

ステップバイステップの説明:

まず、我々は水平 pasteコマンドを使用して2つのファイルを積み重ねます

paste -d ' ' data1 data2

paste -d ' ' data1 data2 | awk '{print $1,$2+$4}'

これが与える:最初の列を印刷すると、列2及び4の要素単位の合計を行うにはawk

1 1 1 2 
2 4 2 3 
3 9 3 4 

その後、我々パイプこれを:これはfolowing出力が得られます。

1 3 
2 7 
3 13 

これをxmgraceにパイプし、元のデータファイルを追加データセットとして提供します。

paste -d ' ' data1 data2 | awk '{print $1,$2+$4}' | xmgrace -pipe data1 data2

xmgraceがロードされるパイプデータは、最後に処理されますので、パイプデータが第3データセット「S2」のままであることに留意されたいです。 (私はそれが少しきれいに見える作った後)ここで

が出力されます。

enter image description here

関連する問題