X



gnuplot を使おう。 その3
0742名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 18:38:15.64
* 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
0743名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 18:38:36.06
* 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
0744名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 12:33:01.70
5.2.7のNEWSの和訳

5.2.7 での変更
==============
* 新規 "set pm3d nolipcb" は cbmin より小さい色の四辺形の描画をスキップ
* 新規 pm 出力形式で utf8, 破線、ボールド、イタリック文字列をサポート
* 新規 配列値の虚数部分を "using" で 3 列目として使えるように
* 新規 遅いシステムフォントサーバでの qt 出力形式用に gnuplot --slow
0745名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 12:33:17.63
* 変更 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 出力形式の改善
0746名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 12:33:39.44
* 修正 "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 の箱の処理を可能に
0749名無しさん@お腹いっぱい。
垢版 |
2019/05/31(金) 00:26:39.12
データファイルの何列目を使うかを変数で指定したくて
a=2
plot "foo" using 1:(column(a))
とやると、using 1:2と同じでうまくいくんだけど、aをxにするとあたかも
using 1:(column(0)) かのように振る舞う。yなら問題ない。
xという変数名自体に何か特別な意味ってありましたっけ?
0752749
垢版 |
2019/06/01(土) 00:16:02.29
よく分かりました。
0754名無しさん@お腹いっぱい。
垢版 |
2019/11/30(土) 14:32:34.11
多数のファイルのN列目を表示したいとき、plot "file0" using 1:N, "file1" using 1:N, ・・・ってつらつら書く以外に楽な方法ないかな
たとえばワイルドカードみたいなの使えて plot "file*" using 1:N とかできたら便利なんだけど
0760名無しさん@お腹いっぱい。
垢版 |
2019/12/31(火) 06:08:44.69
>>759だと全部くっついて1個のグラフみたいになった
やるとしたらこんな感じかな
p for [f in system("ls file*")] f t f
もう少しスマートにできたらいいのだが
0761名無しさん@お腹いっぱい。
垢版 |
2019/12/31(火) 08:03:31.69
ファイルのお尻に空行を入れる
0762名無しさん@お腹いっぱい。
垢版 |
2020/03/28(土) 22:55:30.48
目盛り線の入れ方,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とか
使って計算するしかないかな。めんどくさいけど。
0763名無しさん@お腹いっぱい。
垢版 |
2020/03/31(火) 13:28:00.32
何その用途ならgnuplotじゃなく、今ならpythonとか使った方がいいんじゃない?
仮にそれが解決しても、また不満が出てきそうだけど…
0765名無しさん@お腹いっぱい。
垢版 |
2020/04/01(水) 21:17:04.56
>>762はpythonかわかんないけど
スクリプトでやってるんじゃないの
その上でgnuplotの機能自体でできないか
って聞いてんだと思うけど

答えとしては結局スクリプトでやるのが
正解だと思うけど
0766名無しさん@お腹いっぱい。
垢版 |
2020/04/21(火) 15:08:52.29
こんにちわ。
なんと、「算術平均」の拡張版ができました。こちらをご覧ください。
http://www7b.biglobe.ne.jp/~river_r/bm/AveRage.html
0770名無しさん@お腹いっぱい。
垢版 |
2020/08/02(日) 10:07:20.70
age
0771名無しさん@お腹いっぱい。
垢版 |
2020/08/10(月) 10:44:59.99
Windows版 5.2.8の3次元図での問題。
マウスでドラッグすると座標軸が多数表示されて重なってしまう。

これってバグ? それともパラメータ設定で回避できるの?
ver4.xあたりではこういう問題は発生してなかったと思う。
0772名無しさん@お腹いっぱい。
垢版 |
2020/08/27(木) 21:46:31.33
誰か答えてあげて
うちとこはWindows版使ってないからわからない
0775名無しさん@お腹いっぱい。
垢版 |
2020/10/25(日) 17:38:43.49
過疎ってますなあ
0778名無しさん@お腹いっぱい。
垢版 |
2021/03/15(月) 20:29:07.36
set xlabelとかで、ラベルの途中に改行を入れた時の
行間というか改行幅って調節できるんですかね?

2行目以降をset labelで細かく位置を調節すれば
色々自由にできるとは思いますが、
ちょっと行間を詰めたいだけなので、
簡単に設定できると嬉しいと思いまして。
0779名無しさん@お腹いっぱい。
垢版 |
2021/06/04(金) 07:23:10.50
とあるスクリプトからパイプでgnuplotにコマンド送ってイメージファイル作らせたりしてるんだけど、Ctrl+Cで中断させようとすると、スクリプトは終わるのにgnuplotは終わらずにエラーメッセージ吐いたりする。
gnuplotがSIGINT受けても止まらないせいだと思うんだけど、何かの設定で止まるようになんないかな。
ソース眺めてみたけどよーわからん。
OSはLIinux。

って誰もみてないか。
0782名無しさん@お腹いっぱい。
垢版 |
2021/06/07(月) 20:38:57.59
おお、ありがたや。
perlの例だけど、openでgnuplotにパイプをつないで、
コマンドとインラインデータを流し込む。
例えばこんな風。
0783名無しさん@お腹いっぱい。
垢版 |
2021/06/07(月) 20:39:26.83
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";
}
プロットするデータはここでは乱数で作ってるけど
実際は実験データとかを取り込んだもの。
0784名無しさん@お腹いっぱい。
垢版 |
2021/06/07(月) 20:40:30.07
あら、インデントは消えちゃうのね。

ひと組300行のデータからイメージファイルを作って、
それをループで回して200回も繰り返すからそれなりに時間がかかって、
途中でCtrl+Cで止めようとするとperlは止まるんだけど、
gnuplotは止まらず混乱?してplotのインラインデータ部分を
コマンドとして解釈してエラーメッセージを出したり、
タイミングによってはepsファイルに行くべき文字列が
stdoutに出てきたりする。
0786名無しさん@お腹いっぱい。
垢版 |
2021/06/08(火) 13:19:49.14
ゴメンゴメンperlが止まってエラーが出てないだけだった
外側のfor消して300の乱数データを時間が掛かるように適宜大きくしたら
以下のようなエラーが出た

...
gnuplot> 168373
^
line 160265: invalid command


gnuplot> 168374
^
line 160265: invalid command
...
0787名無しさん@お腹いっぱい。
垢版 |
2021/09/07(火) 10:43:47.41
Androidに移植されたgnuplotいくつかあるみたいだけど、使ってる方でおすすめのあります?

以前は、Droidplot + android terminal emulator つてのを使ってたけど、ずっと更新されずAndroid9ではgoogle playに出てこなくなっちゃった
0789名無しさん@お腹いっぱい。
垢版 |
2022/01/11(火) 07:21:41.62
制御構造入れたプロットをしたいなら
スクリプトからgnuplotに食わせるより、雛形だけepsに吐かせてpsコードで書いた方がずっと楽よ
行列演算も組み込みだし数値扱うなら多分perlより使える言語
0790名無しさん@お腹いっぱい。
垢版 |
2022/01/11(火) 08:41:38.40
データ読み込みから画像生成までpostscriptに任せられるのはtsv/csvまでだな
readline、substringで分割、cvr(conv to real)、dict/arrayに突っ込むだけ

10/16進数値以外は読めないので汚いデータはpsのregex(要外部ライブラリ)とか使うより前処理した方が楽かと

あとgnuplotのようにlatex記法をサポートしてないので、gnuplotの吐くepsから拾うか、
./makeplot.ps dat1 dat2 ...のように動的に数式を生成するコマンドにしたいなら、psからgnuplot -eやtexコマンドを外部呼び出しして出力を読み込むか

あれ、意外とめんどくさそう…
0791名無しさん@お腹いっぱい。
垢版 |
2022/01/11(火) 15:39:58.80
逆にgnuplotをpsライブラリだと捉えよう、手動でスタイル合わせるより馴染むし
gsなら%pipe%cmdがファイルハンドル返したり%stdin, %stdout使えて楽
0797名無しさん@お腹いっぱい。
垢版 |
2022/01/21(金) 23:28:36.37
>>796
debian sidでgnuplot-x11の方です
gnome41でwaylandな環境なんてすが
同じlinuxなでもxfce4にxorgのマシンだと問題ないんです
waylandのせいかと思うんですが。
まぁ使えないわけじゃないけど、微妙に使い勝手悪いです。。
0798名無しさん@お腹いっぱい。
垢版 |
2022/01/22(土) 06:34:00.66
>>797

wxtターミナルではどうですか?
x11やqtターミナルはドライバープログラム(gnuplot-x11やgnuplot-qt)
が描画するけど
wxtはgnuplot本体が描画するから、違いがあるかも。

後,
Xと通信しない非対話型ターミナルではどうなんでしょう。
例えば

set terminal png
set output 'test1.png'
a=1
plot a*x
set output
set output 'test2.png'
a=2
plot a*x
set output

はちゃんと動作しますか?
0799名無しさん@お腹いっぱい。
垢版 |
2022/01/22(土) 22:50:07.85
>>798
ありがとうございます。
起動するとデフォルトがwxtで、そちらだとたとえば

gnuplot > plot sin(x)
でサイン関数が描画され、次に
gnuplot > plot cos(x)
と続けて打ってもサイン関数のプロットのままで
ウィンドウがアップデートされません。
ウインドウをグラブして拡大したりするとアップデートされます。
terminalに関しては試してなかったので、
termをx11にしたところ、上の例だとcos(x)を新たにプロットするとちゃんとウインドウも再描画されました。あとpngとかpostscriptでも問題ないので
どうやらwxtの問題みたいです。
debianとかgnome4x系になってまだ間もないのでなにかのバグの可能性もあると思いましたが、他に報告が無いみたいなので自分の環境のせいかもしれないです。
とりあえずtermがx11だと問題ないのがわかったのでそれで使っていようと思います。
ありがとうございました、助かりました
0801名無しさん@お腹いっぱい。
垢版 |
2022/01/23(日) 00:19:56.20
replotでも再描画されないです
ウインドウの属性が変わらないとアップデートされないので、gnomeのバグかもしれないです
0803名無しさん@お腹いっぱい。
垢版 |
2022/01/23(日) 14:20:36.70
最新のtestingのisoを使ってsidにクリーンインストールしたんですけど、qt版はたしか動かなかったです。基本、bullrsdys+って感じだと思います。

他のtesting入れてるマシンではqt版使ってて問題なかったので、試しにx11版に変えてみましたが、問題なしです。
こっちのマシンはずっとtestingで運用してるのでdisplay protocolはxorgのままです。
なんかwaylandとgnome4x系の問題な気がしてきました。
0804名無しさん@お腹いっぱい。
垢版 |
2022/01/24(月) 16:19:00.47
linuxはあまり使わないのでよくわかりませんが、linuxなら開発者のEthan氏が勧めるようにqt ターミナルがいいと思います。
動かないなら仕方ないけど。
linuxなら自分でビルドするのもそれほど苦ではないと思うのでqtターミナル、トライできないかな?
0806名無しさん@お腹いっぱい。
垢版 |
2022/02/03(木) 16:50:49.59
windows11,WSL2,WSLg,gnuplot-5.4.3で
qtだと文字列の末尾が数字の1だと表示がずれる
wxtだと閉じるボタンだけで最大化、最小化ボタンが表示されない
原因がわかる方いますか?
0808名無しさん@お腹いっぱい。
垢版 |
2022/02/11(金) 15:56:00.88
色んな出力対応してるんだから片っ端から試して上手く動くの使えばいいよ、プレビュー用途ならなおさら
0810名無しさん@お腹いっぱい。
垢版 |
2022/02/19(土) 15:01:51.77
>>806
状況がよくわかりません。wslならgnuplotはlinuxアプリですか?
それともwindowsアプリをwslのterminal上でつかっているのですか。
状況を再現するコマンドやスクリプトを書いてください。
0811名無しさん@お腹いっぱい。
垢版 |
2022/02/19(土) 20:44:09.30
>>806
qtの方は意味不明のままですが、wxtの方はwxtターミナルのプロットウィンドウの右上部に並ぶ
− □ × (それぞれ「最小化」、「最大化」、「閉じる」の動作を)ボタンのうち−、□(最小化、最大化)ボタンが表示されないということかと。
0812名無しさん@お腹いっぱい。
垢版 |
2022/02/19(土) 20:45:34.46
>>806
gnuplotは5.4.3 のlinuxバイナリということで、windows11,wsl2,wslgだということですね。
gnuplotの問題なのですか?wslgの問題かも知れません。VcXsrvもいれてみてこちらでも試してみてはいかがでしょうか。
0813名無しさん@お腹いっぱい。
垢版 |
2022/03/22(火) 14:45:32.74
Windows上でのpngcairoターミナルでフォントの表示の乱れがbug ticketに上がっています。

# pngcairo: uppermost pixel in key, label etc missing
https://sourceforge.net/p/gnuplot/bugs/2512/

# Bad kerning with pngcairo and gnuplot 5.4.1
https://sourceforge.net/p/gnuplot/bugs/2397/

どちらもpangoライブラリが関係しているようです。
Ethanさんはpangoのフォントやバージョンを変えてみればいわれたので
色々なバージョンpangoをビルドして、ライブラリ置き換えてみましたが大きな改善はしませんでした。

また、windows上のpangocairoは既定ではWindows nativeのバックエンドを使っています。
環境変数PANGOCAIRO_BACKENDをfcにセットすることにより、バックエンドをfontconfig
にすることができます。
この作業がworkaroundとして現状有効の様です。
0818名無しさん@お腹いっぱい。
垢版 |
2022/04/19(火) 20:48:40.33
プロットするデータの個数によって、with linesとwith pointsを自動切換えできないでしょうか?

多くのデータファイルから自動で2Dプロットを作成しています。
基本的には
  plot "file.dat" with lines
でスッキリした線だけのプロットを描くのですが
たまにX,Yのデータが1組しかないファイルがあり
その場合プロットが目に見えない点だけになってしまいます。

そこでファイル中にデータが1組しかない時は
  plot "file.dat" with points
に自動的に切り替えてくれるとありがたいです。

設定やplotコマンドの書き方でなんとかならないでしょうか?
もしくは、データファイルの書き方で1組のX,Yデータでも
目に見えるポイントを出す方法があればそれでもいいです。
0822名無しさん@お腹いっぱい。
垢版 |
2022/04/21(木) 17:17:27.17
>>818
stats とif でできるかな。
データがないときはSTATS_recordsはUndefined になることに注意して
(インデント消えるとおもうから,適当に足してくれ)

stats 'data.dat' nooutput
if (STATS_records == 1) {
plot 'data.dat' with points
} else {
plot 'data.dat' with lines
}
0827818
垢版 |
2022/04/22(金) 19:20:02.97
statsうまくいきました!ありがとう!
統計情報なんて気にもとめてなかった。

ちなみにデータない時はエラーになって、STATS_recordsは元のままですね。
(初回ならundefined)

米澤先生のサイトはブックマークしてあったけど、忘れてた。。。
0828818
垢版 |
2022/04/30(土) 20:53:37.83
5.0系だとログスケールの時にstatsがエラーになるという謎仕様。
5.2以降だと大丈夫みたいだけど、うちの環境だと使いたい端末がインストールができないorz

ところで5chの仕様変更でのせいか輪をかけて過疎化してるね
0830
垢版 |
2022/05/01(日) 18:59:29.08
>>828
> 5.0系だとログスケールの時にstatsがエラーになるという謎仕様。
そうなんですか。しかし,5.0系とは懐かしいですな。

> 5.2以降だと大丈夫みたいだけど、うちの環境だと使いたい端末がインストールができないorz
5.2でインストールできない terminal なんてなんでしょう。5.2でdeprecateになったterminalなのでしょうか。
0831818
垢版 |
2022/05/02(月) 20:28:54.72
>>830

あ、ウチ環なので一般的な話じゃないです。

LinuxやらSolarisやらMacやら、OSバージョンも複数あって
インストールされてるライブラリもまちまちで
どのマシンでも同じバージョンのgnuplotを動かそうとすると
ライブラリが足りなくてmake失敗したりとか。

今んとこ全部のマシンで成功したのが5.0系というだけの話。
0832名無しさん@お腹いっぱい。
垢版 |
2022/05/19(木) 00:17:38.26
set term qt widget <id>
の<id>って何を指定すればいいのかな?
他のアプリのウィンドウに表示できそうなんだけど違うのかな?
マニュアルみてもよくわからない。

x11なら
set term x11 window "<string>"
でウィンドウIDを指定すれば別アプリに表示させられるから
Qtでも出来そうな気がするんだけど違うかな。
0834名無しさん@お腹いっぱい。
垢版 |
2022/05/28(土) 21:26:00.53
じぶんはTcl/TkのGUIアプリでウィジェットにgnuplotを表示させてます。
んでTkのscaleをぐりぐりするとグラフがぐりぐり動きます。

Tkinterならwinfo_idで出来そう
レスを投稿する


ニューススポーツなんでも実況