36

次のようなファイルがあると仮定します(二重改行に注意してください)。

"p = 0.1"
1 1
3 3
4 1


"p = 0.2"
1 3
2 2
5 2

Gnuplotにこれら2つのデータセットを1つのプロットにプロットさせ、各データセットの最初の行にタイトルを付けることは可能ですか?

4

5 に答える 5

40

それは間違いなく可能であり、データファイルはすでに正しい形式です。columnheader(N)あなたが探している機能は、N 番目の列の上部にあるデータを読み取り、それをプロット タイトルとして使用するように組み込まれています。

 plot 'test.dat' i 0 u 1:2 w lines title columnheader(1),\
      'test.dat' i 1 u 1:2 w lines title columnheader(1)

これは反復を使用して凝縮できます。

plot for [IDX=0:1] 'test.dat' i IDX u 1:2 w lines title columnheader(1)
于 2012-10-10T14:31:53.233 に答える
4

gnuplot 5.1 (2016/08/28)

これはhttps://stackoverflow.com/a/29495496/895245に似ていますが、それ以降のバージョンのいくつかの修正があります。

https://stackoverflow.com/a/43819870/895245for [i=0:*]は、分配する構文を教えてくれたstatsので、少し良くなりました。

脚本:

datafile = 'test.dat'
stats datafile nooutput
plot for [IDX=0:STATS_blocks-1] \
    datafile \
    index IDX \
    using 1:2 \
    with lines \
    title columnheader(1)

テストデータ:

a
1, 1
2, 2
3, 3


"b"
1, 1
2, 4
3, 9


"c, c"
1, 1
2, 8
3, 27

出力:

これは、後に gnuplot 5.1 になる gnuplot 2016/08/28 で機能しますが、gnuplot 5.0.3 (Ubuntu 16.04) では機能しません。5.0.3 ではstats、列ヘッダーが有効なデータではないため、コマンドでエラーが発生するためです。そして2016/08/28にただの警告になりました。

https://groups.google.com/forum/#!topic/comp.graphics.apps.gnuplot/Pi4aBE2PwZ8で警告を削除する方法を尋ねました。

次のようなコメントを使用します。

#a
1, 1
2, 2
3, 3

私がテストしたどちらのバージョンでも機能しませんでした。単に無視されます。

于 2016-08-29T16:46:10.117 に答える
4

すべてのプロセスを自動化するためのandyras からの回答 ( answer 1およびanswer 2 ) に基づく解決策は、次を使用することです。

datafile = 'test.dat'
stats datafile
plot for [IDX=1:STATS_blocks] datafile index (IDX-1) u 1:2 w lines t\ 
columnheader(1) lc variable

これにより、スクリプトはデータ ブロックの数を自動的に検出し、さまざまな色でプロットし、対応するタイトルを各データ ブロックの最初の行に定義します。

于 2015-04-07T15:38:03.787 に答える
1

データセットを少し変更すると (タイトルがコメントとして表示されるようになります):

#"p = 0.1"
1 1
3 3
4 1


#"p = 0.2"
1 3
2 2
5 2

次のように、これら 2 つのデータ セットを別々の線としてプロットできます。

plot 'data.dat' i 0 t "p = 0.1", '' i 1 t "p = 0.2"

plot コマンドのindex(i略して) オプションは、gnuplot にith 番目のデータセットをプロットするように指示します。gnuplot にタイトルをヘッダーから自動的に取得させる方法が見つからないため、title(t略して) オプションを使用して手動でタイトルを指定しました。

于 2012-10-10T13:06:44.050 に答える