• 締切済み

gnuplotで複数csvファイルからデータ取得

http://t16web.lanl.gov/Kawano/gnuplot/datafile3.html を読んだところ、複数のファイルから読み込む場合は、UNIXのコマンドを使えばいいらしいことはわかったのですが、 #a1.csv 1.0,2.0 2.0,4.0 3.0,6.0 #a2.csv 1.0,1.0 2.0,4.0 3.0,9.0 というファイルに対し、とりあえずpasteを利用して複数行呼び出しを行おうとしたのですが、 gnuplot> set datafile separator "," gnuplot> plot "<paste -d',' a1.csv a2.csv" using 1:2 warning: Skipping unreadable file "<paste -d',' a1.csv a2.csv" No data in plot と表示されてしまいました。 一体どのようにすれば、複数のcsvファイルを結合したものを読み込めるのでしょうか? また、Cygwin上でpasteコマンドについてちょっと実験してみたのですが、 $paste -d"," a1.csv a2.csv >output.txt とすると、 #output.txt 1.0,2.0 ,1.0,1.0 2.0,4.0 ,2.0,4.0 3.0,6.0 ,3.0,9.0 と表示されるのですが、 $paste -d"," a1.csv a2.csv とすると、Cygwin上には、 ,1.0,1.0 ,2.0,4.0 ,3.0,9.0 と表示されます。 output.txtに出力した際は、メモ帳上では、結合している部位で改行されているようには見えないのですが、ブラウザにコピペしたところ改行されてしましました。 どうやら、結合した場所に\rが入っているくさいです。 このpasteを使う方法以外にもgnuplotで扱うのにもっといい方法があるという場合はその方法も教えていただけると幸いです。 よろしくお願いします。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

> $paste -d"," a1.csv a2.csv > とすると、Cygwin上には、 >,1.0,1.0 >,2.0,4.0 >,3.0,9.0 これは\r(CR)で行頭にカーソルが移動するために、a1.csvを表示した箇所にa2.csvが上書きされた状態です。 こちらでやってみたところ、 > gnuplot> set datafile separator "," > gnuplot> plot "<paste -d',' a1.csv a2.csv" using 1:2 でグラフが表示されました。 Windowsネイティブ版のgnuplotを使っていて、pasteを認識していない、ということはないですか? カレントディレクトはa1.csv,a2.csvと同じですか?

glarelance
質問者

お礼

>Windowsネイティブ版のgnuplotを使っていて、pasteを認識していない、ということはないですか? 使ってるgnuplotは、wgnuplot.exeでバージョンは4.2UNIXではなくWindows上で動く物です pasteコマンドはUNIXが持っているコマンドらしいので、Cygwinをインストールすればpasteが使えるようになるんじゃないか?と思い、入れてみたのですが、gnuplotの方から、pasteコマンドがきちんと呼べてないようなのです。環境変数のpathに入れればいいのかな?とも思い、Cygwinのpaste.exeが入っているフォルダを指定したりもしたのですが、やはりgnuplot上ではうまくできてないようなのです。Windows上のgnuplotでpasteコマンドを使用するには、何かgnuplotを設定しないといけないのでしょうか? >カレントディレクトはa1.csv,a2.csvと同じですか? カレントディレクトリについては、そのようになっています。

すると、全ての回答が全文表示されます。

関連するQ&A