gnuplotでCSVのフィールド名とか

gnuplotでCSVファイルからデータを読み込んでプロットするときにフィールドをインデックス番号でなくフィールド名で指定する方法。

単純な方法だと

plot "filepath" using "time":"y"

数値を操作したい場合は

plot "filepath" using "time":(column("y") + 1)

文字列として操作したい場合は

plot "filepath" using "time":"y":("value: ".stringcolumn("label")) with labels

とかでできます。

データ処理のスクリプトを書いていると、開発の途中で新しいフィールドが追加されたり順番を変えたくなったりすることもありますが、はじめからフィールド名で指定しておけば、少なくともそういったときにフィールドの順序にとらわれることはなくなります。

何のデータを処理しているのか、コード的にもわかりやすくなりますね。

精神衛生的に、フィールド名が使える場合は使いたい。

  • Mac OSX 10.9 Mavericks
  • gnuplot 4.6
Advertisement