web-dev-qa-db-ja.com

gnuplotは2つのファイルからのデータをプロットします:1つのx座標、他のy

2つのファイルがあります。1つはx座標で、もう1つはyです。

Gnuplotを使用してこの2つのファイルを1つのグラフにプロットする方法はありますか?または、この2つのファイルを行ごとに連結する方法はありますか?

ありがとう

14
sangi

Gnuplotで、あるファイルのx座標と別のファイルのy座標をネイティブにプロットする方法はありません。

Bashのようなシェルを使用する場合は、次のコマンドを使用できます

paste x_data.dat y_data.dat > xy_data.dat

ファイルを行ごとに結合します。このコマンドをgnuplotスクリプトに入れたい場合は、次のように行うことができます。

plot "<paste x_data.dat y_data.dat"
14
andyras

Gnuplot内から直接、あなたが求めることを行う簡単な方法があります。試してみてください:

plot "< join file1.dat file2.dat" using 1:2 with lines

両方のファイルに1つの列しか含まれていない場合、上記のコマンドはそれらを一方に対して他方に対して出力します。

joinコマンドは、さまざまなファイルの列を含む算術演算を実行する場合にも役立ちます。たとえば、両方のファイルに2つの列がある場合、

plot "< join file1.dat file2.dat" using 1:($2+$4) with lines

最初のファイルの最初の列を、最初のファイルと2番目のファイルの2番目の列の合計に対してプロットします。

joinコマンドは GNUコアユーティリティ の一部です。私のMacにはデフォルトでそれらがインストールされています。これはほとんどのLinuxシステムに当てはまると思います。 Windowsを使用している場合は、 GnuWin をご覧ください。

ソース:gnuplotメーリングリスト( http://gnuplot.10905.n7.nabble.com/combining-data-from-different -input-files-td3528.html )。