6

gnuplot 4.2 を使用して、特定の列/行の値を取得し、その値を何らかの方法で使用することは可能ですか?

たとえば、私のデータファイルに次のものが含まれているとしましょう

#1  2
7  13
5  11
23 17
53 12

列 1 が x 軸で、列 2 が y 軸である単純なプロットの場合:-

plot 'datafile' using 1:2

私がやろうとしているのは、列 2 のすべてのデータをその列の最初の要素 (13) で正規化することです。gnuplot 自体でこれを行う方法はありますか (つまり、スクリプト言語やデータを最初に前処理するために何かに頼ることなく)?

乾杯

4

4 に答える 4

7

移動平均のデモを使用して、2 番目の列の最初の値に正規化されたプロットを実現することができました。

base変数は参照値を格納するために使用され、関数firstbase最初の行で初期化されます。

first(x) = ($0 > 0 ? base : base = x)
plot file.dat u 1:(first($2), base/$2)

これは gnuplot 4.2 を使用して行われたものではないことに注意してください。

編集:クリストフのアドバイスを使用して更新されました。

于 2015-02-06T07:55:52.963 に答える
1

基本値 (たとえば 13) がデータセットの最初の行にある場合、gnuplot の CVS バージョンを使用して、必要なことを実行できるはずです。

実行中の平均のデモをご覧ください。これらの線に沿って、最初に呼び出されたときにベース値をカスタム変数に格納し、その後の呼び出しでその変数を返すカスタム関数を作成できます。

(そのデモは CVS バージョンのみにリストされているため、必要な機能は現在のリリース バージョンでは利用できないと思います。)

于 2009-09-20T09:35:59.870 に答える
-1

13 でいっぱいの新しい列を作成してから、次を使用します。

plot 'datafile' using 1:($2/$3)

于 2009-01-20T09:00:07.390 に答える