gnuplot を使おう。 その3
シェルのreadコマンドのように、値を標準入力からセットするコマンドってないですか? どういうことしたいかいまいちよくわからんが、プロットしたい値を入力したいということなら、多分ある >>686 バッチ処理中に標準入力を受け付けて,その値でプロットなどを作成したいと いうことですか。 普通にやったらたぶんできない。 >> 689 以下ならできる。 初期化ファイル "header" の後、対話型モードを起動し、 その後別のコマンドファイル "tailer" を実行する: gnuplot header - trailer 何回もすまん。 上の例は 特別なファイル名 "-" は、コマンドを標準入力から読み込むことを意味します。 を使っているにすぎない。 >>686 >値を標準入力からセットするコマンド ってのが何を意味してるのかいまいちわからんが 君のやりたいことは多分できる もうちょっと詳しく書いてくれれば 親切な人が答えてくれるはずだ 5.2.4 windows バイナリ で リンクしたfontconfig(Ver. 2.13.0)バグがあり, gnuplotにバグが生じていました。 (日本語のロケールではこのバグはでない。) https://sourceforge.net/p/gnuplot/bugs/2069/ https://sourceforge.net/p/gnuplot/mailman/message/36410314/ 依存ライブラリをアップデートしてfontconfigをVer. 2.13.1 にしたところバグはfixされたようです。 アップデートしたバイナリがあがっているようです。 引用する 現在のパスワード ??????? bump PATCHLEVEL to 5.2.5a in anticipation of release 5.2.5 next month https://sourceforge.net/p/gnuplot/gnuplot-main/ci/5d6c57f66176786893fe02eb5d5b317877877d0d/ ということで,もうすぐ5.2.5がリリースされそうです。 gaussianのcube形式ボリュームデータと言って分かる方いますか。中身テキストです。 gnuplotでこれを読んで等値面とか表示出来ると手軽で良いんだけど、そう言う拡張を誰か作ってないですかね? PyMOLは一度試したけど、色々とコマンドや設定を覚えないと使えなくて、うーんって感じだった。 でも、バッチ方式、set 何々方式って意味でPyMOL は gnuplot と同じか。 使ってるうちに慣れるかな。 >>703 ググってみた。 cube2xyz: convert cube data to xyz and slize segments/planes http://larrucea.eu/cube2xyz/ Pythonのスプリプトみたい。 >>706 つづき このページのグラフは掃き出させたデータをguplotで処理してるっぽい。 昨今AIとか機械学習が持て囃されてるけど、gnuplotはそのブームに乗れてますの? >>708 gnuplot はあくまでプロットソフト。機械学習とかなら、python などを使えばいい。 gnuplot はプロットソフトとして進化し続けている。 私は、gnuplot はそれでいいと思っている。 >>709 > gnuplot はあくまでプロットソフト。機械学習とかなら、python などを使えばいい。 そうだよね。 gnuplot は unixy であるべきと思う。 python は太り過ぎ。 チューリング完全な言語が太り過ぎ(複雑過ぎってこと?)でunixyじゃないってのは違和感があるなあ ennhanced テキストでのフォント指定で空白あるフォント名が使えない問題がありました がフォント名をシングルクォートで囲むことで使えるような変更が開発版でありました。 リリース版はgitのリリース版ソースは変更されているので5.2.7(5.4になるかもしれませんが)で での対応となります。 >>680 遅レスすまぬ。理由が分かったのが昨日だから。 >スクリプトにした時とかに結果を標準エラー出力に掃き出すこと。 >なにをどう考えてそういう挙動を実装したんだ? https://sourceforge.net/p/gnuplot/bugs/2126/ Writing non-graphics content to stdout would break use of gnuplot as a filter. For example: GNUTERM=postscript myprogram | gnuplot > result.ps GNUTERM=svg myprogram | gnuplot > result.svg だそうだ。 すなわち,標準出力してしまうとフィルターしてgnuplotを使えないからだそうだ。 納得するかどうかはしらんが。 Gnuplot はユーザーはwindows 版が圧倒的に多いけど、開発はlinux 上でおこなわれているからなあ。unixyになるわな。 Macにaquaterm込みで導入したいんですけどaquatermのアプリはインストールしてるのに gnuplotのインストールで認識されなくて困ってるんですが原因はなぜかわかりますか? >>717 Mac user じゃないからよくわからんが、mac でも最近ばqt とかwxtとかを使うのではないかな。 >>717 gnuplotのプロンプトで set term と打ってaqua がでてくるのかな? >>718 バージョンはMojaveです デフォルトだとqtなんですけどネット見るとみんなaquaterm入れてる感じなんで真似しているんですが上手くいかない感じです qtでも問題ないですかね? >>719 homebrewでインストールしようとしたんですが、aquatermのappはインストールされているのにも関わらず―with-aquatermのオプションが無効になってる感じです >>722 それは昔の話で今はwxtが主流だと思うぞ >>723 それはWindowsの場合ですか? Macではqtでも大丈夫ですか? gnuplotはlinuxで開発されていて、linuxではqtがデフォルト。qtで問題ない。 >>724 Macでbrew経由wxt使ってる。 大昔はAquaTermだったけど、綺麗さの差は感じない。 何より画面に出力するのはあくまでプレビューで最終出力は適宜PDFとか画像とかにしてるし。 qtは使ったことないからわからんが好きなもの使えばいいよ windowsでは、qtはこったプロットで表示に難ありで、wxtがデフォルト。ただし、windowsでは、windowsターミナルもちゃんと最近gnuplotの進化に対応している。aqua ターミナルは知らん。 みなさんの指摘どおり上位互換があるみたいなので古いのに深入りするのはやめます どうやら私が情弱だったみたいですね ありがとうございました >>729 gnuplotを使う人は結構ここみるので,あなたの質問への質疑応答が これからmacにgnuplotをインストールする方への有用な情報となった。 >>725 これまじ?wxtだと思ってた Qtって何か好きになれないんだよなー もっとスリムにしてくれよと >>733 実はgnuplotは現在なにもしていしないで、フルビルドするとどんなプラットホームでもqtがデフォルトだ。windowsはビルド時にオプションでwxtにしている。 私もqtが好きではないのでlinuxては.bashrcで export GNUTERM=wxt をやってる。 >>736 Windowsバイナリをアップロードしました。 Changes in 5.2.7 ================ * NEW "set pm3d noclipcb" will skip drawing quadrangles with color < cbmin * NEW pm terminal supports utf8, dashed lines, bold/italic text * NEW imaginary component of array values is available to "using" in column 3 * NEW gnuplot --slow may help use of qt terminal with slow system font server * CHANGE splot "with points pt 0" acts like "with dots" * CHANGE (tikz) improved default interpretation of gnuplot arrowhead style * CHANGE teach hidden3d to handle double-headed vectors (arrowstyle "heads") * CHANGE "unset title" or "reset" resets all title properties to default * CHANGE font names passed to enhanced text processing may be in quotes * CHANGE cairo terminals accept fractional font sizes * CHANGE "plot with table" does not output trailing field separator * CHANGE better centering for clustered histograms * CHANGE clear STATS_* variables before performing analysis * CHANGE cairo, libgd, and svg terminals handle LT_NODRAW by not drawing at all * CHANGE svg terminal clickable icons are in-line data rather than external refs * CHANGE revise space allocated for ylabel; allow text justification for ylabel * CHANGE reduce overhead, making it feasible to have 10^6 hypertext labels * FIX "plot with table" unnecessarily limited string column output to 60 chars * FIX (windows) make sure graph window is shown even if the program is "hidden" * FIX hidden3d mode was not correctly dealing with arrowstyle backhead * FIX sprintf in 'using' spec must not clobber numeric locale * FIX tikz - request for polygon with 0 vertices could hang terminal * FIX lua/tikz - do not attempt to ftruncate output being piped through stdout * FIX tkcanvas - do not attempt to ftruncate output being piped through stdout * FIX handle NaN values in input stream to "stats FOO matrix" * FIX prevent extra read past the end of a datablock holding matrix data * FIX pm - issues in box and polygon fill, (wide) lines, enhanced text, images * FIX dropped character in piped input stream if plot window is manually closed * FIX extraneous dots and potential segfault from splot with contour labels * FIX boxplots - color sequence correctly starts with specified linetype * FIX incomplete initialization led to segfault from "gnuplot -c foo.gp baz" * FIX Allow "pm3d depthorder base" to handle 3D quadrangles with logscale z 5.2.7のNEWSの和訳 5.2.7 での変更 ============== * 新規 "set pm3d nolipcb" は cbmin より小さい色の四辺形の描画をスキップ * 新規 pm 出力形式で utf8, 破線、ボールド、イタリック文字列をサポート * 新規 配列値の虚数部分を "using" で 3 列目として使えるように * 新規 遅いシステムフォントサーバでの qt 出力形式用に gnuplot --slow * 変更 splot "with points pt 0" が "with dots" 同様になるように * 変更 (tikz) gnuplot の矢先スタイルのデフォルトの実装の改良 * 変更 hidden3d で双頭のベクトル (arrowstyle "heads") を処理するできるよう * 変更 "unset title" や "reset" でタイトル属性をすべてデフォルトに * 変更 拡張文字列処理に渡すフォント名を引用符に入れれるように * 変更 cairo 出力形式で非整数のフォントサイズ指定を可能に * 変更 "plot with table" が引き続くフィールド分離子を出力しないよう * 変更 積み上げ型ヒストグラムの中央揃えの改良 * 変更 解析の実行前に STATS_* 変数をクリア * 変更 cairo, libgd, svg 出力形式で LT_NODRAW を何も描かないように処理 * 変更 svg 出力形式のクリック用アイコンを外部参照でなくインラインデータに * 変更 ylabel 用のスペースの改善と位置揃えを可能に * 変更 10^6 ものハイパーテキストラベルを持てるようオーバーヘッドの削減 * 変更 とても多くの fig 出力形式の改善 * 修正 "plot with table" の文字列出力の 60 文字への不必要な制限 * 修正 (windows) gnuplot が隠れていてもグラフウィンドウが見えるように * 修正 hidden3d モードが arrowstyle backhead を正しく処理していなかった問題 * 修正 using 内での sprintf は数値ロケールを必ず壊さない * 修正 tikz - 頂点 0 の多角形を要求するとドライバがハングしていた * 修正 lua/tikz - stdout へのパイプ出力の際に ftruncate しようとしてなかった * 修正 tkcanvas - stdout へのパイプ出力の際に ftruncate しようとしてなかった * 修正 "stats FOO matrix" への入力列の NaN 値の処理 * 修正 matrix データを保持するデータブロックの最後に追加入力を通さないよう * 修正 pm - 箱と多角形の塗り潰し、広い線、拡張文字列処理、画像等の問題 * 修正 描画ウィンドウを手動で閉じた際にパイプ入力の文字列が落ちる問題 * 修正 等高線ラベル付きの splot での無関係のドットと内在的な segfault の問題 * 修正 boxplots - 指定した線種で正しく色列が開始するように * 修正 "gnuplot -c foo.gp baz" で不正な初期化が segfault を引き起こす問題 * 修正 "pm3d depthorder base" で対数軸の z で 3D の箱の処理を可能に 結構,変更,修正があります。バージョンアップできる人はした方がいいでしょう。 データファイルの何列目を使うかを変数で指定したくて a=2 plot "foo" using 1:(column(a)) とやると、using 1:2と同じでうまくいくんだけど、aをxにするとあたかも using 1:(column(0)) かのように振る舞う。yなら問題ない。 xという変数名自体に何か特別な意味ってありましたっけ? x はgnuplotではx軸の変数。 例えば plot x -x**3 splotではx, y になる。 plotでは通常xは特別。parametricではtは特別。 splotでは通常x, yは特別。parametricではu, vは特別。 internal use; post-5.2.7 but not yet a release candidate for 5.2.8 https://sourceforge.net/p/gnuplot/gnuplot-main/ci/dd73aeb3fbcb60bc5788339aff31928d0ad241b9/ git のstableで Bump version to 8alpha というコミットがありました。 あくまで内部的なものなのでこれが次は5.2.8であるというわけではないのですが 5.4でなく,5.2.8がでるのでしょうか? 多数のファイルのN列目を表示したいとき、plot "file0" using 1:N, "file1" using 1:N, ・・・ってつらつら書く以外に楽な方法ないかな たとえばワイルドカードみたいなの使えて plot "file*" using 1:N とかできたら便利なんだけど 5.2.8がでたよ。5.2では最後らしい。windowsバイナリは遅れるよう。 windowsバイナリもアップされています。失礼しました。 plot forってめんどくさい シェルみたいに"file*"だけで処理できたらいいのに 重ね書き順とかに拘りがないなら plot "<cat file*" で良さそうだけど >>759 だと全部くっついて1個のグラフみたいになった やるとしたらこんな感じかな p for [f in system("ls file*")] f t f もう少しスマートにできたらいいのだが 目盛り線の入れ方,set xticsとかで目盛り間隔指定できるけど, x軸をn分割して目盛りを入れるみたいなことってできますか? 例えば,x軸が0〜10のとき,「4」を指定したら2.5,5,7.5に目盛りを打つ, 「20」を指定すると0.5ごとに目盛りを打つとか。 なんでこんなことがしたいかっていうと, 大量の数値データからスクリプトで大量のグラフ作ってepsに出力, TeXに食わせて最終的にPDF化してます。 数値データはいろんな種類があって軸の範囲はautoscaleに任せるんだけど, デフォルトでplotすると目盛り間隔が狭すぎたり広すぎたりするから, 軸の分割数を統一できるといいなあと思う次第で。 なんとなく簡単にできそうな気がしてマニュアル見たんだけど, 自分で見た限りだとそんな機能なさそうでした。 やるとしたら一旦ダミーでplotしてGPVAL_X_MIN/MAXとか 使って計算するしかないかな。めんどくさいけど。 何その用途ならgnuplotじゃなく、今ならpythonとか使った方がいいんじゃない? 仮にそれが解決しても、また不満が出てきそうだけど… pythonでgnuplotのスクリプトを吐けば解決 >>762 はpythonかわかんないけど スクリプトでやってるんじゃないの その上でgnuplotの機能自体でできないか って聞いてんだと思うけど 答えとしては結局スクリプトでやるのが 正解だと思うけど こんにちわ。 なんと、「算術平均」の拡張版ができました。こちらをご覧ください。 http://www7b.biglobe.ne.jp/ ~river_r/bm/AveRage.html Vimにデフォルトでシンタックスハイライトがない言語gnuplot Windows版 5.2.8の3次元図での問題。 マウスでドラッグすると座標軸が多数表示されて重なってしまう。 これってバグ? それともパラメータ設定で回避できるの? ver4.xあたりではこういう問題は発生してなかったと思う。 誰か答えてあげて うちとこはWindows版使ってないからわからない splotをPNGとかの2dイメージではなく 3dでfile出力する事って可能ですか? set xlabelとかで、ラベルの途中に改行を入れた時の 行間というか改行幅って調節できるんですかね? 2行目以降をset labelで細かく位置を調節すれば 色々自由にできるとは思いますが、 ちょっと行間を詰めたいだけなので、 簡単に設定できると嬉しいと思いまして。 とあるスクリプトからパイプでgnuplotにコマンド送ってイメージファイル作らせたりしてるんだけど、Ctrl+Cで中断させようとすると、スクリプトは終わるのにgnuplotは終わらずにエラーメッセージ吐いたりする。 gnuplotがSIGINT受けても止まらないせいだと思うんだけど、何かの設定で止まるようになんないかな。 ソース眺めてみたけどよーわからん。 OSはLIinux。 って誰もみてないか。 おお、ありがたや。 perlの例だけど、openでgnuplotにパイプをつないで、 コマンドとインラインデータを流し込む。 例えばこんな風。 ↓ for my $k (1 .. 200){ my $file = sprintf 'file%03d', $k; my @xdata = (1 .. 300); my @ydata; push @ydata,rand 1 for(0 .. 300); open my $fh, '|-', 'gnuplot'; print $fh <<EOD; set term postscript eps set output "$file.eps" plot "-" w l EOD for my $i (0 .. $#xdata){ print $fh "$xdata[$i]\t$ydata[$i]\n"; } print $fh "e\n"; } プロットするデータはここでは乱数で作ってるけど 実際は実験データとかを取り込んだもの。 あら、インデントは消えちゃうのね。 ひと組300行のデータからイメージファイルを作って、 それをループで回して200回も繰り返すからそれなりに時間がかかって、 途中でCtrl+Cで止めようとするとperlは止まるんだけど、 gnuplotは止まらず混乱?してplotのインラインデータ部分を コマンドとして解釈してエラーメッセージを出したり、 タイミングによってはepsファイルに行くべき文字列が stdoutに出てきたりする。 再現しないよ 783を例えばhogeというファイル名で保存して $ ./hoge 途中,Ctrl+Cするとgnuplotも止まる read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる