スクリプトとデータファイルでGnuplotを使用しています。
私のスクリプトにはコマンドがあります。
セットタイトル「何とかタイトルはこちら」
その文字列をデータファイルから取得することは可能ですか?たとえば、データファイルにはプロットのタイトルが含まれるため、多くのデータファイルで単一のスクリプトを使用できます。
スクリプトとデータファイルでGnuplotを使用しています。
私のスクリプトにはコマンドがあります。
セットタイトル「何とかタイトルはこちら」
その文字列をデータファイルから取得することは可能ですか?たとえば、データファイルにはプロットのタイトルが含まれるため、多くのデータファイルで単一のスクリプトを使用できます。
これが純粋な gnuplot で簡単に実行できるかどうかはわかりませんが、ラッパー bash スクリプトを使用したソリューションを次に示します。plotscript.sh data.dat
コマンドラインで呼び出してスクリプトを使用します。
#!/bin/bash
my_title=$(head -n 1 $1 | sed 's/^# \(.*\)/\1/')
echo "set terminal postscript enhanced color
set output 'plot.eps'
set title '$my_title'
plot '$1' u 1:2" | gnuplot
スクリプトを使用可能にするには、コードをテキストファイルに入れて実行chmod +x
します。タイトルの形式を教えていただければ、それに合わせてスクリプトを調整することができます。このスクリプトは、タイトルがこのタイプの形式のデータ ファイルの最初の行であることを前提としています。
# mytitle
1 4
2 5
3 2
バックティック置換を使用できます...例
set title "`head -1 datafile.dat`"
ただし、バックティック置換は文字列操作の前に行われるため、これでは望みどおりにはなりません (データファイル名を文字列として指定することはできません)。ただし、マクロはバックティック置換の前に展開されます。
私のテストデータファイルは次のようになりました:
"this is the title"
10 20
20 30
30 40
そして、私のテストスクリプトは次のようになりました:
DATAFILE="datafile.dat"
set macro
TI='`head -1 '.DATAFILE.'`' #macro: Single quotes are important here to prevent expansion of backtics.
set title @TI
plot DATAFILE u 1:2 title columnhead(1)
set title
データファイルでタイトルが二重引用符で囲まれていない場合は、結果のコマンドが有効になるように二重引用符を追加する必要があることに注意してください。(マクロまたはデータファイルに追加できます)