gnuplot を使おう。 その3 (944レス)
gnuplot を使おう。 その3 http://mevius.5ch.net/test/read.cgi/unix/1314242150/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
887: 名無しさん@お腹いっぱい。 [sage] 2022/12/06(火) 01:23:17.38 C++からデータをパイプでgnuplotに流し込むことを考えています 以下のソースはLinuxではうまくいったのですが mingwでビルドしてWindowsで実行するとうまく行きません (ソース分けます) #include <string> #include <cstdio> #include <memory> #include <ctime> #include <map> #include <cmath> using namespace std; using Series = map <double, double>; static const double pi (acos (-1)); static const double MIN (0), MAX (pi * 4); static const double INTERVAL ((MAX - MIN) / 100); static const double PHI (0); static const double OMEGA (pi / 8); static const double DURATION (2); http://mevius.5ch.net/test/read.cgi/unix/1314242150/887
888: 887 [sage] 2022/12/06(火) 01:24:00.71 (続き) int main () { string gnuplot_path ("gnuplot"); FILE fp (popen (gnuplot_path.c_str (), "w")); if (!fp) return -1; fprintf (fp, "reset\n"); fprintf (fp, "set yrange [-1:1]\n"); clock_t time0 (clock ()); for (double second (static_cast <double> (clock () - time0) / CLOCKS_PER_SEC); second < DURATION; second = static_cast <double> (clock () - time0) / CLOCKS_PER_SEC) { Series series; for (size_t i (0), last ((MAX - MIN) / INTERVAL); i < last; ++ i) { const double x (MIN + i * INTERVAL); series.insert (make_pair (x, sin (x - PHI + OMEGA * second))); } fprintf (fp, "set title 't = %1.2f'\n", second); fprintf (fp, "plot '-' title 'sin' with lines\n"); for (const Series::value_type &point: series) fprintf (fp, "%f %f\n", point.first, point.second); fprintf (fp, "e\n"); fflush (fp); } pclose (fp); return 0; } http://mevius.5ch.net/test/read.cgi/unix/1314242150/888
889: 887 [sage] 2022/12/06(火) 01:34:44.60 書けなくなった http://mevius.5ch.net/test/read.cgi/unix/1314242150/889
890: 名無しさん@お腹いっぱい。 [sage] 2022/12/06(火) 08:10:39.65 >>887 mingw gnuplotの5.4はpipeの扱いにバグがあります. 最近修正されたのですがリリース版修正されるのは次のリリース(5.4.6)になります. 5.2のgnuplotを使うか http://mevius.5ch.net/test/read.cgi/unix/1314242150/890
892: 887 [] 2022/12/06(火) 12:05:17.01 >>890,891 有難うございます 試してみまするる http://mevius.5ch.net/test/read.cgi/unix/1314242150/892
893: 887 [] 2022/12/06(火) 12:08:48.86 >>890,891 このあとエラーとgnuplotのバージョン情報を貼ろうと思ったのですが 昨夜は全然書き込めなくなりました バージョンはご懸念の通り5.4 patchlevel 5になります 不完全な書き込みにも関わらず情報提供をありがとうございます http://mevius.5ch.net/test/read.cgi/unix/1314242150/893
894: 887 [sage] 2022/12/06(火) 12:57:34.65 >>890,891 ビンゴでした Windows版は5.2.8にしたら意図通り動作しました (ちなみにLinuxで動作していたのはDebianのstableのやつで5.4.1でした 5.4系列でパイプに問題があるのはWindows版だけかもしれません) 不完全な情報からご回答を頂きまして本当に有難うございました http://mevius.5ch.net/test/read.cgi/unix/1314242150/894
895: 887 [sage] 2022/12/10(土) 15:26:23.26 Windowsで tail -f hoge.gp | gnuplot のようにしたいのですが tail -fのように使えるコマンドってありますか? スレ違いのような気もしますが一連ってことでお聞きします http://mevius.5ch.net/test/read.cgi/unix/1314242150/895
896: 887 [sage] 2022/12/10(土) 21:02:57.19 pwshで以下のようにして出来ました gc hoge.gp -tail 1 -wait | gnuplot http://mevius.5ch.net/test/read.cgi/unix/1314242150/896
898: 887 [sage] 2022/12/11(日) 23:48:25.03 >>897 有難うございます なるほどmsys2にtailが入ってるだろうから それでも良さそうですね http://mevius.5ch.net/test/read.cgi/unix/1314242150/898
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.244s*