[ソフト] gnuplotでcsvファイルをプロットするときの注意点

gnuplot(gnuplot homepage)でcsvファイルのデータをプロットするときに注意が必要な場合があるので、解説していきます。

まず、gnuplotでデータファイルに書かれているデータをプロットするとき、デフォルトではデータはスペース区切りとして扱われます。ただcsvファイルのようにカンマで区切られているもの、またtsvファイルのようにタブで区切られていたりするものは、gnuplotでプロットするときは注意が必要になります。これはgnuplotのデフォルトがスペース区切りであることによるものです。なので、スペース区切りではないファイルをプロットする場合は、区切り方法を変更してやる必要があります。
 
gnuplotでファイルの区切りを指定するにはカンマ区切りの場合は
set datafile separator comma

としてやります。なお他の区切りの場合はcommaの部分を "\t" のように指定してやればよいです。
カンマ区切りもそれで表すことができ
set datafile separator ","

とすることも出来ます。
(なお set datafile separator "comma"  と書いてしまうと失敗します)

さてcsvファイルの読み込みについては少しややこしい場合があって、例えば
1, 3
2, 4
3, 1
4, 5

のようにカンマの後ろに1つスペースが入ってる場合には、上で説明した設定をしなくてもプロット出来るようです。一応スペースがあるのでデフォルトの設定通り読み込まれているとは考えられるのですが、
1,3
2,4
3,1
4,5

のようにカンマのみの場合はやはり上記の設定が必要になります。csvファイルというとカンマの後ろにスペースが入っているものが結構多かったりするので、意外に設定が必要なことに気が付かないままgnuplotを使っている場合もあるかも知れません。注意してみてください。

なおgnuplotの区切り方法の設定に関してはgnuplotのマニュアル(バージョン5.2) p123で説明されています。
(バージョン5.0のマニュアルではp117)

コメント

スポンサーリンク


このブログの人気の投稿

gnuplotでプロットなどの色をcolornameの指定で変更する

catコマンドの出力を行番号付きにするためのコマンドラインオプション(-n, -b)

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplot : グラフにグリッド線を描く方法(set grid)

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)