gnuplot を使おう。 その2
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2006/11/28(火) 22:10:25gnuplot 公式 Web ページ
http://www.gnuplot.info/
前スレ
gnuplot を使おう。
http://pc8.2ch.net/test/read.cgi/unix/1002453983/l50
0729名無しさん@お腹いっぱい。
2009/11/28(土) 19:01:280730名無しさん@お腹いっぱい。
2009/11/29(日) 02:38:57こちらはわかる人に質問しているので
わからない人に教えてもらおうとは思いません
こちらが細かく説明すると
本当はわかっていない人でも
何か答えられるような気分になるものですが
それは錯覚です
本当にわかっている人はこちらが細かく説明しなくても
十分満足な答えをくれますし、向こうも負担とは思わないものです
そういう人を「エスパー」とか言って揶揄するのは勝手ですが
自分がわかってないことを素直に認めるのも重要だと思います
0731名無しさん@お腹いっぱい。
2009/11/29(日) 11:38:200732名無しさん@お腹いっぱい。
2009/12/03(木) 07:28:390733名無しさん@お腹いっぱい。
2009/12/21(月) 01:51:170734名無しさん@お腹いっぱい。
2009/12/22(火) 16:39:33y軸の途中を省略するようなコマンドってないですか?
0735名無しさん@お腹いっぱい。
2009/12/22(火) 23:23:540736名無しさん@お腹いっぱい。
2009/12/23(水) 00:12:11これは上と下を切ってますよね。
そうではなくて、上と下だけを表示するような感じで。
0737名無しさん@お腹いっぱい。
2009/12/23(水) 20:36:56これを垂直(Z軸に水平)にする方法はありますか?
0738名無しさん@お腹いっぱい。
2010/01/06(水) 15:06:020739名無しさん@お腹いっぱい。
2010/01/06(水) 16:23:590740名無しさん@お腹いっぱい。
2010/01/07(木) 21:41:250741名無しさん@お腹いっぱい。
2010/01/07(木) 22:00:38cond(a,b)=a?b:(0/0)
plot [0:2*pi] cond(1<x && x<5, sin(x))
0742名無しさん@お腹いっぱい。
2010/01/07(木) 22:23:48ありがとうございます
前にもっと簡単な形であったような気がするのですがググっても見つからなかったのでそれを使ってみます
0743名無しさん@お腹いっぱい。
2010/01/15(金) 01:07:06コマンドから点を打つにはどのようにしたらいいですか?
たとえばXYの2Dグラフで
x=1,y=2
x=2,y=3
x=3,y=5
・・・
みたいに点を打っていくような方法を探しています
データファイルを使えば出来るようですが表示させるデータの元が
プログラム(Ruby)から出てくるので出来ればファイルを経由せずに
パイプでコマンドを渡して直接表示させたいです
よろしくお願いします
0744名無しさん@お腹いっぱい。
2010/01/15(金) 07:38:17"gnuplot 標準入力"あたりでググればたくさん見つかると思うけど
0745743
2010/01/15(金) 23:20:09その方法で出来ました。ありがとうございました
replotでデータを入れ直さなければならないのは・・・しょうがないですかね・・・
0746名無しさん@お腹いっぱい。
2010/01/19(火) 17:18:054次元データのcontourってできますか?
陰関数f(x,y,z)=0の球面上にg(x,y,z)の大きさでcontourを描きたいんです.
4次元の離散データでもOKです.
よろしくお願いします!
0747名無しさん@お腹いっぱい。
2010/01/26(火) 09:03:59set size square
set xrange [-1:1]
set yrange [-1:1]
plot [0:2*pi] cos(t),sin(t)
ってやっても表示されるグラフのアスペクト比が1にならないのって仕様ですか?(´・ω・`)
0748名無しさん@お腹いっぱい。
2010/01/26(火) 10:06:220749名無しさん@お腹いっぱい。
2010/01/26(火) 14:52:470750名無しさん@お腹いっぱい。
2010/01/26(火) 19:02:330751名無しさん@お腹いっぱい。
2010/01/27(水) 00:26:300753名無しさん@お腹いっぱい。
2010/01/27(水) 09:39:04epsなら普通に正方形にならね?
俺が普段使う範囲で、size ratioの設定を正しく反映しないのはwindowsくらいだ
同じ画面出力でもwxtなら大丈夫
0754名無しさん@お腹いっぱい。
2010/01/27(水) 10:02:17余白を設定するのは改善されたの?
0755名無しさん@お腹いっぱい。
2010/01/27(水) 12:54:040756名無しさん@お腹いっぱい。
2010/01/28(木) 16:35:27グラフ描画時の背景の色を変更したいのですが、どうすればいいのでしょうか?
三次元グラフの生成時にRGBの色調をつけたグラフをを作るために、
【test.txt】
128.934224 129.448536 39.323250
128.927859 129.448572 37.982612
128.922047 129.447750 36.677253
128.916626 129.446125 35.406244
128.911458 129.443734 34.168681
128.906420 129.440597 32.963684
128.901402 129.436716 31.790396
128.896305 129.432081 30.647983
・
・
のようなファイルを用意し、gnuplotで以下のコマンドを実行しています。
-----------------------------------------------------
gnuplot> rgb(r,g,b) = 65536 * int(r) + 256 * int(g) + int(b)
gnuplot> splot 'test.txt' using 1:2:3:(rgb($1,$2,$3)) with dots lc rgb variable
-----------------------------------------------------
そのときにgnuplotのグラフ描画時の背景が白色で、ラインが黒色になっているのですが、
これを背景黒色、ラインを白色にできるようなコマンドは何かあるのでしょうか?
ちなみに、gnuplotは前述コマンド列を使用するために【http://gnuplot.sourceforge.net/】よりダウンロードしたversion4.2以降を使っています。
0757名無しさん@お腹いっぱい。
2010/01/28(木) 23:21:37> set border lc rgb "white"
とか。
Windowsで画面表示するだけならGraph-menuで設定できる。
0758名無しさん@お腹いっぱい。
2010/01/30(土) 09:07:440759名無しさん@お腹いっぱい。
2010/02/03(水) 11:17:18X1 Z(X1,Y1) Z(X1,Y2) Z(X1,Y3)
X2 Z(X2,Y1) Z(X2,Y2) Z(X2,Y3)
X3 Z(X3,Y1) Z(X3,Y2) Z(X3,Y3)
こんなデータを3次元プロットしたいのですが、
gnuplotで直接読み込む方法はないでしょうか?
0760759
2010/02/03(水) 11:22:250761名無しさん@お腹いっぱい。
2010/02/07(日) 06:40:59表示域を何分割するかで指定することはできないでしょうか?
マニュアル等を見ても目盛間隔の絶対値で指定しているものしか
見当たりません、よろしくおねがいします。
0762名無しさん@お腹いっぱい。
2010/02/07(日) 09:29:48xmin = -10
xmax = 10
sect = 4
set xrange [xmin:xmax]
set xtics1.0* (xmax-xmin)/sect
0763名無しさん@お腹いっぱい。
2010/02/07(日) 13:55:57を参考にグラフを作っているのですが、
plot "data.txt" using 1:2:3:4:5 with candlesticks linetype -1
の最後の-1はどういう意味があるんですか?
0764名無しさん@お腹いっぱい。
2010/02/07(日) 18:26:460765名無しさん@お腹いっぱい。
2010/02/07(日) 20:05:53plot sin(x) lt -1
plot sin(x) lt 0
plot sin(x) lt 4
とかやってみればわかる
0766名無しさん@お腹いっぱい。
2010/02/10(水) 08:44:18plot f(x)*100
みたいなプロットができました。
データファイルのプロットについて
plot ("data.txt" using 1:2)*100 とか
plot ("data1.txt" using 1:2)*("data2.txt" using 1:2)
みたいなことはできないでしょうか?
0767名無しさん@お腹いっぱい。
2010/02/10(水) 10:14:240768名無しさん@お腹いっぱい。
2010/02/10(水) 12:02:060769名無しさん@お腹いっぱい。
2010/02/10(水) 17:53:29これは無理
0770名無しさん@お腹いっぱい。
2010/02/22(月) 07:14:37pngターミナルだと透明化がされていないものが生成されてしまいます。
別のマシンではうまくいくので、pngの透明化はサポートされている
のは確認できているのですが、なぜこうなっているのかわかる方は
いらっしゃりませんか?
どうすればpngターミナルでも透明化がされるのでしょう?
0771名無しさん@お腹いっぱい。
2010/02/22(月) 14:13:200772名無しさん@お腹いっぱい。
2010/02/22(月) 15:06:45ありがとう。
それで透明化がされました。
なぜ同じ設定なのに別のマシンでは truecolor なしで
うまくいくのかは不明です。
でも、透明化はできたけど、できあがったグラフの曲線が汚いというか、
アンチエイリアスがかかっていません。
別のマシンでやったり、 wxt でやると綺麗にできあがります。
どうすればpngターミナルで曲線を綺麗に表示させれますか?
0773名無しさん@お腹いっぱい。
2010/02/22(月) 19:00:38>>504
つまり現状では無理
開発版使ってるならpngcairoがあるが
一旦svg出力するか、wxtの表示をツールバーのボタンでクリップボードにコピーして、gimp等に貼り付けるか
0774504
2010/02/23(火) 01:22:57よく読んだら>>504で触れたの忘れて>>700でまた質問とかしてるし
>>772-773
gnuplotでsvg出力したものを綺麗にpngに変換するにはちょこちょこバッドノウハウがあります
とくにtransparent.demにあるような塗りつぶし
http://gnuplot.sourceforge.net/demo_4.3/transparent.2.png
の場合、>>700で書いたように微妙な出来上がりになる事があります
>>772さんが必要であれば後ほどやり方をお教えできますが、
もし余計な手間をかけず一発で変換できる方法が見つかったら教えてください
0775名無しさん@お腹いっぱい。
2010/02/23(火) 14:25:39元々開発版をつかっていましたが、折角なので
今日のCVS HEADをコンパイルして使ってみました。
> 開発版使ってるならpngcairoがあるが
pngcairo で完璧にできました。
ttp://imagepot.net/view/126690226800.png
再度ありがとうございました。
例のマシンでやったときと同じアウトプットなので、そのマシンでは
png==pngcairo ターミナルになっていたのかどうか不思議です。
>>774
Linuxならコンパイルはスムーズに通るはずなので、
>>773さんが言うように開発版で pngcairo を使ってみてはどうでしょう?
0776Zeno ◆5nZQbNmQPs
2010/02/26(金) 16:38:58吾も gnuplot を愛用している。
CVS のソースコードに自分用のパッチを当てて使っている。
君達は gnuplot をどういったプロット(グラフ)を生成する為に活用しているのだね?
0777名無しさん@お腹いっぱい。
2010/02/27(土) 09:12:520778名無しさん@お腹いっぱい。
2010/02/27(土) 09:47:580779名無しさん@お腹いっぱい。
2010/02/27(土) 10:03:18他には、解析的に求めた方程式解の検算を交点で確認したり
微分係数が正しいか接線を引いて確認したりとか
0780名無しさん@お腹いっぱい。
2010/02/27(土) 10:37:25ファイナンス関係のデータをプロットするときにつかってるけどな。
そういうアナリティックスで使用してる人多いんじゃないかな。
0781名無しさん@お腹いっぱい。
2010/02/27(土) 13:28:22関数のカタチを確認したり
ぱぱっと処理したいときだね
最近は見栄えを気にする用途では
Matplotlib に移行してしもた
0782名無しさん@お腹いっぱい。
2010/02/27(土) 17:58:48Matplotlibはtexが普通に使えるからいいよね。
でも、いまだにファイルにデータを出力してgnuplotでやっちゃうな。
プログラム書くのはどうも面倒で。
0783名無しさん@お腹いっぱい。
2010/03/09(火) 17:08:30各データを読み込んですべての円を表示するようなことはできますか?
出来るならgnuplotを覚えようと思ってるのですが
//x座標 y座標 半径r
1 2 3
2 3 4
...
0784名無しさん@お腹いっぱい。
2010/03/09(火) 20:38:380785名無しさん@お腹いっぱい。
2010/03/09(火) 20:49:54ベースになってるforthは気になってた言語でもあるので
これを機に挑戦してみます
0786名無しさん@お腹いっぱい。
2010/03/09(火) 21:20:520787名無しさん@お腹いっぱい。
2010/03/09(火) 22:01:38ウブンツの場合は何もしなくてもできていました。バージョンは同じです
0788名無しさん@お腹いっぱい。
2010/03/09(火) 22:06:14わざわざこのために覚えるほどの価値があるかどうかは知らん
0789名無しさん@お腹いっぱい。
2010/03/09(火) 22:14:52mandriva使ったことないから知らんけど、ソースからコンパイルするとか
余所のディストロのrpm突っ込むとか試してみたら?
英語力があればmandrivaのパッケージメンテナにコンタクトを取るのが一番だけど
0790名無しさん@お腹いっぱい。
2010/03/10(水) 22:38:31そうですか・・
もし分かる方いたらお願いします
0791名無しさん@お腹いっぱい。
2010/03/15(月) 16:08:24Winのデフォルトターミナルがwxtになっとるw
0792名無しさん@お腹いっぱい。
2010/03/18(木) 12:59:040793名無しさん@お腹いっぱい。
2010/03/20(土) 20:07:08これはどういうことなんでしょうか?
ビルドの際の単純なミスと考えたいですが。
0794名無しさん@お腹いっぱい。
2010/03/20(土) 22:39:39リリースノートにもこうある。
> We strongly encourage you to build, test, and package the new cairo-based
> terminals (output modes). These are pngcairo and pdfcairo for output to file,
> and wxt as the default interactive terminal.
開発陣は、各OSの画面出力ドライバをwxtに統一するつもりなんだろ。
そのためのwxWidgets。
ご利益もある。
OSごとの表示の差がなくなるし、見たままのPNG/PDF出力が得られる。
PDF出力はファイルサイズがちょっとアレだが。。
0795名無しさん@お腹いっぱい。
2010/03/21(日) 00:08:17pdftops とか使う?
0796名無しさん@お腹いっぱい。
2010/03/21(日) 01:09:32新ターミナルができたからって旧ターミナルが使えなくなるわけじゃない。
0797名無しさん@お腹いっぱい。
2010/04/04(日) 16:07:55Particularly noteworthy features include:
- smoother graphics based on the pango, cairo, and wxWidgets libraries
New drivers: pngcairo pdfcairo wxt
- client-side interactive display using the HTML 5 "canvas" element
See: http://gnuplot.sourceforge.net/demo_canvas/
- better internationalization, support for UTF-8 character encoding
- support for transparency and alpha-channel image generation and handling.
PNG images can be read in and manipulated as plot elements.
- extended command line syntax, including iteration
e.g.: plot for [i=1:10] foo(i)
plot for [file in "a.dat b.dat c.dat"] file
- new plot styles: circles rgbalpha
0798名無しさん@お腹いっぱい。
2010/04/13(火) 13:16:314.4for windowsでデフォをwindows terminalにしたいなら,
環境変数GNUTERM をwindowsにセットする
他の方法は,コマンドプロンプトでsetとうち
USERPROFILE=C:\Documents and Settings\Tatsu
を探し出します。上の例なら
C:\Documents and Settings\xxxxにgnuplot.iniをつくり,
set terminal windows
と打ちこんで保存します。
カレントディレクトリ(フォルダ)にguplot.iniがあればそちらの設定が
優先されます。
help startup
をよんでください。
いろいろカスタマイズしたいときなど便利です。
0799名無しさん@お腹いっぱい。
2010/04/13(火) 13:28:274.4のWin版バイナリのリリースに関わった者ですが,ミスではありません。
私は,wxtつかないのをデフォにして,wxtつきは差分で配布する意見を
出したのですが意見が通りませんでした。
というわけで,私個人は,798の方法でUSERPROFILEのさすフォルダに
gnuplot.iniを作ってwindowsターミナルをデフォにしてます。
0800名無しさん@お腹いっぱい。
2010/04/14(水) 18:57:48今後の方向としては、OSを問わずにデフォルトターミナルをwxtに統一するつもりなんですね。
0801名無しさん@お腹いっぱい。
2010/04/14(水) 19:14:37plot exp(-x**2) sin(x) title '減衰する波'
0802名無しさん@お腹いっぱい。
2010/04/14(水) 21:16:09知らんかった
いつもお世話になってますm(_ _)m
0803名無しさん@お腹いっぱい。
2010/04/15(木) 09:26:07cairoベースのターミナル(wxt, pngcairo, pdfciaro)はfontconfigを使って
国際化をしています。gdベースのターミナル(png, jpeg, gif)もfontconfigをリンクしたばあい,
utf-8でファイルを保存し,日本語true typeフォントなどを利用すれば,
簡単に日本語でます。
ただし,4.4.0のWindowsバイナリはgd-2.0.36RC1のバグに
よりgdベースのターミナルで従来の方法フォント指定ができません。
4.4.1でフィックスされます。現在,フィックスしたものを利用したい場合は
cvs版(4.5)のバイナリでは直してあります。
ttp://www.tatsuromatsuoka.com/gnuplot/Eng/winbin/
0804名無しさん@お腹いっぱい。
2010/04/15(木) 09:34:18fontconfigを使って国際化しています -> fontconfig「など」を
Unixの方は自分でビルドされる方も多いと思いますので,gdライブラリと
fontconfigライブラリを使われる方は,
ttp://old.nabble.com/Re%3A-gd-and-fontconfig-p27970151.html
を見て,gdライブラリを修正して再構築してください。
0805名無しさん@お腹いっぱい。
2010/04/15(木) 09:40:184.4からはいっていますので,よろしくお願いします<m(__)m>
私は開発にはあまり携わっていません
(時々バグフィックスぐらいはしますが)。
どちらかというとwindows版(cygwin版とDjGPP版もやってます)の
パッケージメンテナーという感じです。
0806名無しさん@お腹いっぱい。
2010/04/18(日) 19:17:56いいのに、需要はないのかなぁ・・・?
http://takeno.iee.niit.ac.jp/~shige/unix/gnuplot/gpinfo-2008.html#info-20080129
0807806
2010/04/18(日) 19:23:36↑の竹野先生のが参考になったけど、如何せん面倒すぎる・・・
グリッドが(データの数と同じ)多角形でなくていいのなら、set grid polarで十分だな
0808名無しさん@お腹いっぱい。
2010/04/23(金) 12:21:490809名無しさん@お腹いっぱい。
2010/05/05(水) 21:26:02ifやforなど何十行にも渡る場合ってどうやるの?
全部を;で1行に繋ぐしかない?
0810名無しさん@お腹いっぱい。
2010/05/05(水) 22:55:000811809
2010/05/06(木) 15:57:38こう?怒られてしまったけど・・・
system("for i in 1 2 3 \
do \
echo $i \
done ")
0812名無しさん@お腹いっぱい。
2010/05/06(木) 16:47:030813名無しさん@お腹いっぱい。
2010/05/06(木) 18:03:36"do "
"echo $i "
"done ");
0814名無しさん@お腹いっぱい。
2010/05/07(金) 05:55:16多分そのデータファイルを読んでパラメトリックプロットの命令を吐くフィルタを
perlなりrubyなりでさくっと作ってやるのが早い。
0816名無しさん@お腹いっぱい。
2010/05/07(金) 14:27:45"do \\"
"echo $i \\"
"done ");
0817名無しさん@お腹いっぱい。
2010/05/10(月) 09:15:13ttp://takeno.iee.niit.ac.jp/~shige/unix/gnuplot/gpinfo-2010.html#info-20100507
に取り上げられていましたよ。
0818809
2010/05/10(月) 11:17:47おお!竹野先生に取り上げてもらえるとは・・・
___
,;f ヽ
i: i ありがたやありがたや
| | ///;ト,
| ^ ^ ) ////゙l゙l;
(. >ノ(、_, )ヽ、} l .i .! |
,,∧ヽ !-=ニ=- | │ | .|
/\..\\`ニニ´ !, { .ノ.ノ
/ \ \ ̄ ̄ ̄../ / .|
>>811だと改行してることにならなくて駄目というわけか。
0819名無しさん@お腹いっぱい。
2010/05/11(火) 20:12:56竹の先生はよくここを見られていて,気になられた話題に対して解答例など
出されているようです。ときどきwatchされるといいとおもいますよ。
0820名無しさん@お腹いっぱい。
2010/05/11(火) 22:14:50Mac OS X 10.6.3を使っているのですが、gnuplotを自力でコンパイルしたものを利用していました。
今回、グラフの出力先をAquaTermに変更しようと思いMacPortsではなく公式サイトからAquaTermを
ダウンロードしインストールしました。
ところが、Snow Leopardが正式に64ビット対応したことで,AquaTermのライブラリがインストールされていても
32ビット用だけなので無視されてしまうそうで、gnuplotの出力先として指定することができません。
どのようにすればAquaTermにグラフを出力できるのでしょうか?
0821名無しさん@お腹いっぱい。
2010/05/12(水) 06:51:12MacPorts で AquaTerm いれたらいいじゃないか。
0822名無しさん@お腹いっぱい。
2010/05/12(水) 12:53:38ググってみたら以下がでてきました
ttp://slashusr.wordpress.com/2010/01/17/gnuplot-with-aquaterm-on-osx-snow-leopard/
ttp://macwiki.sourceforge.jp/wiki/index.php/gnuplot
Mac ユーザーでないのでよく分かりませんが,お役にたてば幸いです。
0823名無しさん@お腹いっぱい。
2010/05/15(土) 18:53:17set parametric
set pm3d map
splot 'hoge.dat'
とやって得られるような図をplot のwith imageを用いて作ることはできないでしょうか。
単純にplot 'hoge.dat' with imageとやると、等間隔格子として扱われるのか、歪んだ図ができてしまいます。
0824名無しさん@お腹いっぱい。
2010/05/15(土) 21:25:32これらの離散値を用いて、3 次元の球面上に
コンターを描くことはできないでしょうか。
0825名無しさん@お腹いっぱい。
2010/05/16(日) 07:37:160826名無しさん@お腹いっぱい。
2010/05/16(日) 20:41:38dgrid3d
ただし,ちょっと細かい格子間隔でグラフを描こうとすると,
大量のメモリを消費して,何時間も計算時間がかかる.
このへんは早く改良されないかなぁ.
ソースを読んだこと無いから分からないけど,なにか変な補間しているらしくて,
描かれる等高線はガタガタになる...
0828名無しさん@お腹いっぱい。
2010/05/17(月) 18:13:45help contourの例にあるようにtableをつかって等高線のデータを書き出し,
gnuplot demoのworld.dem やworld2.dem球面上に世界地図を描いている図を作成している
スクリプトまねしたらできませんかね。
ちなにworld.demは
ttp://gnuplot.sourceforge.net/demo/world.html
で見れます。
0829名無しさん@お腹いっぱい。
2010/06/05(土) 17:41:28フィッティングするにはどうしたらいいですか?
各データ点に重みを与えればいいですか?
それだと面倒なので、フィッティングの際に参照するデータ区間をコマンドで指定したりできないですか?
■ このスレッドは過去ログ倉庫に格納されています