6

次のような構造のdata.csvファイルがあります。

n    John Smith stats     Sam Williams stats
1                23.4                   44.1
2                32.1                   33.5
3                42.0                   42.1

現在、gnuplotで次のコマンドを使用してプロットしています。

plot 'data.csv' using 1:2 title 'John' with lines, '' using 1:3 title 'Sam' with lines

問題は、手動で入力するのではなく、.csvの最初の行から名を取得する方法です。

さらに、テーブルに列を追加した場合に調整可能にして、適切なタイトルの別の行を自動的に追加することはできますか?

4

1 に答える 1

10

あなたはcsvファイルを持っていると言っているので、あなたのデータファイルは次のようになっていると思います(そしてinfile.csvに保存されています):

n,John Smith stats,Sam Williams stats
1,23.4,44.1
2,32.1,33.5
3,42.0,42.1

お使いのバージョンのGnuplotが十分に新しい場合は、引数columnheadとして使用できます。title

echo "
  set datafile separator ','
  plot 'infile.csv' using 1:2 with lines title columnhead
" | gnuplot --persist

または、次のkeyオプションを使用します。

echo "
  set datafile separator ','
  set key autotitle columnhead
  plot 'infile.csv' using 1:2 with lines, '' using 1:3 with lines
" | gnuplot --persist

編集-見出しを短くする

echo "
  set datafile separator ','
  set key autotitle columnhead
  plot '< sed -r \"1 s/,([^ ]+)[^,]+/,\1/g\" infile.csv' using 1:2 with lines, '' using 1:3 with lines
" | gnuplot --persist

出力:

infile.csvの列1:2と1:3のプロット

フォローアップの質問に対するこの回答も関連している可能性があることに注意してください。

于 2012-11-14T01:20:40.100 に答える