0

私がやろうとしていることの用語に慣れていません (解決策を見つけるのが難しくなっています) が、入力ファイルから私がやろうとしていることを理解できると思います。入力ファイルは、タブ区切りの .txt です。

#input file begins here

21  00  0.005   12.0    0.006621    0.35365 0.16718
22  00  0.005   14.0    0.00662 0.34899 0.17206
23  00  0.005   16.0    0.006645    0.34523 0.17739
24  00  0.005   18.0    0.006696    0.33956 0.1815
25  00  0.005   20.0    0.006755    0.33477 0.18692
26  00  0.005   22.0    0.006797    0.33084 0.19178
27  00  0.005   24.0    0.006892    0.3265  0.19683
28  00  0.005   26.0    0.006965    0.32093 0.20256
29  00  0.005   28.0    0.007072    0.31631 0.20747

31  00  0.007   12.0    0.006158    0.38969 0.12999
32  00  0.007   14.0    0.006124    0.38578 0.13541
33  00  0.007   16.0    0.006136    0.38161 0.14018
34  00  0.007   18.0    0.006147    0.37697 0.1452
35  00  0.007   20.0    0.006193    0.37356 0.14999
36  00  0.007   22.0    0.006238    0.3673  0.15499
37  00  0.007   24.0    0.006276    0.36387 0.16037
38  00  0.007   26.0    0.00634 0.35855 0.16595
39  00  0.007   28.0    0.006417    0.35388 0.17118
40  00  0.007   30.0    0.006497    0.34844 0.17673

グラフ上のこれら 2 つのデータ ブロックを区別したいと思います。グラフは 2D プロットになり、上のブロックの点は赤で、下のブロックの点は青になります。入力ファイル全体の長さは約 1000 行で、縦方向の長さは異なります。ただし、それらはすべて改行文字 (\n) で適切に区切られています。

列 4 と 6 をデータ セット名 (凡例ラベル) を列 3 としてプロットしています。

4

1 に答える 1

0

さまざまなポイントに対処する方法は次のとおりです。

  1. 入力ファイルは実際には 2 つのデータ ブロックで構成されておりevery、プロット用に選択できます。every :::0::0最初のブロックのみを選択します。ドキュメントまたは を参照してくださいhelp every

  2. 赤い線の色を使用するには、次のように使用します

    plot 'file.txt' linecolor rgb 'red'
    
  3. プロット用に列 4 と 6 を選択するには、 を使用しますusing 4:6

  4. 3 番目の列の値をキー ラベルとして使用するのは簡単ではありません。数値であることがわかっている場合は、statsコマンドを使用してこれらの単一の値を抽出できます (たとえば、Gnuplot: データ ファイルから単一の数値を読み込んで表示する方法を参照):

    stats 'file.txt' using 3 every :::0::0 nooutput
    key1 = sprintf('%.3f', STATS_max)
    stats 'file.txt' using 3 every :::1::1 nooutput
    key2 = sprintf('%.3f', STATS_max)
    

    列に他の値も含めることができる場合、またはこれと同じフォーマットを維持したい場合は、タイトルの値を抽出するための外部ツールが必要です。

    key1 = system('head -1 file.txt | cut -f 3')
    key2 = system('tail -1 file.txt | cut -f 3')
    

したがって、スクリプトは全体として次のようになります。

stats 'file.txt' using 3 every :::0::0 nooutput
key1 = sprintf('%.3f', STATS_max)
stats 'file.txt' using 3 every :::1::1 nooutput
key2 = sprintf('%.3f', STATS_max)

plot 'file.txt' using 4:6 every :::0::0 linecolor rgb 'red' title key1,\
     ''         using 4:6 every :::1::1 linecolor rgb 'blue' title key2
于 2013-11-04T08:53:13.550 に答える