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
0674名無しさん@お腹いっぱい。
2009/08/18(火) 13:44:16捏造された綺麗なグラフ。Ig0r とかで頑張れば?
0675名無しさん@お腹いっぱい。
2009/08/20(木) 18:44:36ttp://www.ecse.rpi.edu/Homepages/wrf/Teaching/graphics-s2005/ncc1701-gnuplot.png
0676名無しさん@お腹いっぱい。
2009/08/21(金) 05:03:37また、余り綺麗ではなないと思う。何も考えずそのままプロットしましたという感じを受ける
0677名無しさん@お腹いっぱい。
2009/08/21(金) 05:32:06ttp://up2.viploader.net/pic3/src/vl2_175266.png
全て gnuplot で生成しています。
0678名無しさん@お腹いっぱい。
2009/08/21(金) 16:40:39リアルタイムに更新できるグラフなのですか?
0679名無しさん@お腹いっぱい。
2009/08/21(金) 19:10:04以前までは replot/reread で wxt に対してリアルタイム
更新をしていたんですが、いまいち融通が効かないので、今は
チャートサーバーを立てて、ブラウザ + javascript で
自動更新するようにしてます。チャートの生成は gnuplot 任せです。
0680名無しさん@お腹いっぱい。
2009/08/22(土) 05:19:01ttp://up2.viploader.net/pic3/src/vl2_175740.png
上下の動きが激しいともっと綺麗なんですが。
gnuplot は条件文を交えたプロットに弱いのですが、全体的に見ると自由度はかなり高いと思います。
他人を驚かしたいのであれば、やはり3D系がいいのではないでしょうか。例えばこれら:
ttp://skuld.bmsc.washington.edu/~merritt/gnuplot/canvas_demos/hidden2.html
ttp://skuld.bmsc.washington.edu/~merritt/gnuplot/canvas_demos/world2.html
ttp://skuld.bmsc.washington.edu/~merritt/gnuplot/canvas_demos/pm3d.html
0681名無しさん@お腹いっぱい。
2009/08/29(土) 16:43:16複数のグラフを1つの図にplotするとき、
凡例の位置を最初のグラフだけ変えたいのですが,
どのようにすれば良いでしょうか?
例えば、最初のグラフは右上。他左下みたいな感じです。
0682名無しさん@そうだ選挙に行こう
2009/08/30(日) 08:37:14plot cox(x)
set key bottom left
plot sin(x)
では駄目?
set size 0.5,0.5
としているんですが,
set term postscript enhanced
で出力したとき,なぜか突然上・右上・右領域に空白が入るようになってしまいました。
epsファイルを開けてみると,これまで
%!PS-Adobe-2.0 EPSF-2.0 となっていたところが %!PS-Adobe-2.0 のみになっており,
%%BoundingBox: 50 50 230 176 が %%BoundingBox: 302 50 554 410 に
また,%%Orientation: Landscape %%Pages: (atend) が追加されているようです。
以前のように出力するにはどうすればいいでしょうか?
0684名無しさん@お腹いっぱい。
2009/09/11(金) 05:37:03× set term postscript enhanced
○ set term postscript eps enhanced
0685名無しさん@お腹いっぱい。
2009/09/11(金) 05:37:04> set term postscript enhanced
> で出力したとき,なぜか突然上・右上・右領域に空白が入るようになってしまいました。
おなじバージョンを使い続け、且つ設定も弄っていないという前提で、いつも
> set term postscript enhanced
と書いていたということでおk?ところで
http://t16web.lanl.gov/Kawano/gnuplot/postproc.html
のサンプルには
gnuplot> set term postscript eps enhanced
gnuplot> set output "test.eps"
とあるんだけど、これだとどうなんの?
0686名無しさん@お腹いっぱい。
2009/09/11(金) 07:18:41それです! ありがとうございます。
>>685
……という勘違いでした。
お手数かけて申し訳ありませんでした。本当に恥ずかしい限りです。
0687名無しさん@お腹いっぱい。
2009/09/18(金) 14:32:44gnuplot> plot [0:10] 1-exp(-x)
関数 f(x,y) の範囲を直接 (0<f(x)<10) と指定することは可能ですか?
0688名無しさん@お腹いっぱい。
2009/09/18(金) 14:50:391変数関数f(x)の場合
set yrange [0:10]
2変数関数f(x.y)の場合
set zrange [0:10]
0689名無しさん@お腹いっぱい。
2009/10/01(木) 04:39:51動作をさせたいのですが、どのようにすればよいのでしょうか?
0690名無しさん@お腹いっぱい。
2009/10/01(木) 06:56:20$ gnuplot test.plt
でOK。test.pltの中身は
=========================
set xrange [-3.14:3.14]
plot cos(x)
set term png
set out "test.png"
rep
=========================
こんな感じで
gnuplot term
gnuplot load
等でググるとよい
0691名無しさん@お腹いっぱい。
2009/10/01(木) 07:31:31おお、ありがてぇ
0692名無しさん@お腹いっぱい。
2009/10/01(木) 19:32:08ファイル名を書き込む手間を省けませんか?
0693名無しさん@お腹いっぱい。
2009/10/01(木) 19:55:00ループは無いのでifとrereadで制御するしかない。
gnuplotに付属のanimate.demを参考にすると良いが、色々面倒なので
俺はGnuplot.pyを使ってpythonで書いている。
0694名無しさん@お腹いっぱい。
2009/10/01(木) 20:14:00わかりました
0695名無しさん@お腹いっぱい。
2009/10/02(金) 06:21:21確かに面倒なので、PythonやRubyなどスクリプトで外から制御するのがよいと思う
0696名無しさん@お腹いっぱい。
2009/10/03(土) 22:09:20∞と-∞をつなぐ線をなくす方法ってありませんか?
どなたか教えて下さい。
0697名無しさん@お腹いっぱい。
2009/10/03(土) 22:24:28set yrange
0698名無しさん@お腹いっぱい。
2009/10/03(土) 22:39:08やっぱりそれしか方法ないんですね・・・
回答ありがとうございました。
0699名無しさん@お腹いっぱい。
2009/10/03(土) 23:18:33set ytics 1000
で無限大に発散してるように見せることはできる
0700名無しさん@お腹いっぱい。
2009/10/11(日) 15:10:50term svg
pm3d map
でカラーコンターを作成して、それを imagemagick や srvg-convert, inkscape などで png に変換すると、
塗りつぶした領域の中に格子状にアルファチャンネル値が0でも255でもない部分ができてしまいます
isosample の値を増やすと細かくなるのでプロット時の分割の境界に相当する部分のようですが、
これを gnuplot 側の出力時の操作で回避することは可能でしょうか
出来た png ファイルを弄ってこれをなくす事は可能ではありますが、フォントのアンチエイリアスとの両立が若干面倒なので
0701名無しさん@お腹いっぱい。
2009/10/13(火) 22:15:380702名無しさん@お腹いっぱい。
2009/10/18(日) 18:51:39gnuplotを使ってもあまり効率が上がらない。
いまいち融通がきかないのが主な理由だと思う。
なるべく早めにmatplotlibに乗り換えようかなと思ってるけど、
誰か、同様にそうした人いる?
0703名無しさん@お腹いっぱい。
2009/10/18(日) 18:58:27俺も長年gnuplot使っててmatplotlibに切り替えようとしたけど挫折して
Gnuplot.pyで頑張ってる
matplotlibは3次元プロットが出来なかった記憶がある
0704名無しさん@お腹いっぱい。
2009/10/18(日) 19:04:03今マニュアル読んでるけど、3次元プロットも普通にできてるよ。
ttp://matplotlib.sourceforge.net/examples/mplot3d/surface3d_demo.html
0705名無しさん@お腹いっぱい。
2009/10/18(日) 20:00:590.98でmplot3dが消えたんだが0.99で復活したみたい
これでeps出力の品質に問題がなければmatplotlibに移行出来るな
0706名無しさん@お腹いっぱい。
2009/10/18(日) 23:36:57matplotlib に移行気味ではあるんだけど
お手軽グラフはついつい gnuplot 使っちゃったりしてます
0707名無しさん@お腹いっぱい。
2009/10/19(月) 07:40:180708704
2009/10/19(月) 16:13:09gnuplot vs matplotlib
2Dプロット系: "できること" で言えば、パイチャートなどがデフォルト
でプロットできる matplotlib の方が上。ちょっと混み入った設定や
アノテーションの加え方も matplotlib の方が楽。
3Dプロット系: 完成度と速度の面で gnuplot の勝ち。
プロットプログラムの再利用性: これは matplotlib の余裕勝ち。
見た目の綺麗さ: matplotlibではデフォでグラフにアンチエイリアスや
ヒンティングがかかっている。gnuplot だと wx 末端を使えば
matplotlibのそれとほとんど同様になるが、他の末端も
含めて評価するとmatplotlibに軍配が上がる。
数式: TeXのフォントがデフォルトで入っていて、インストール直後
LaTeXのインストール無しでも即効TeXと同じように書けるので matplotlib の勝ち。
結論としては、多種多様のプロットを生成したいのであれば、
matplotlibを使った方が長期的に見て効率が良さそう。特に python 使い
であれば、断然 matplotlib の方が有利。それと、gnuplotはあまり融通
が効かず、ちょっとした変更が時に面倒だったり、"できそうでできない"
ことが何気に結構あったりしたが、matplotlibなら、その心配は無さそう。
しかし、「簡単にsin(x)のプロットが作れればいいやー」程度のユーザーなら、
gnuplotでいいと思うし、そういった単純なグラフなら gnuplot の方が簡単。
0709名無しさん@お腹いっぱい。
2009/10/19(月) 16:24:26わかりやすいまとめthx
ちょっと使ってみるわ
0710デフォルトの名無しさん
2009/10/22(木) 21:15:00gnuplotをDLしたんですが
ファイルをドロップしても(メモで適当に作った一行の.datファイル)
1
^
"ファイル名", line 1: invalid command
というエラーが出てしまいます
dosじゃなくてunixのデータのほうがいいのかとか、拡張子とか、空白文字
とかいろいろ変えてみましたがだめでした;;
原因が思い当たる方、教えてください。お願いします><
0711名無しさん@お腹いっぱい。
2009/10/22(木) 21:39:06まず、.datファイルをgnuplot.exeと同じフォルダに入れておく。
次にgnuplot.exeをダブルクリックして起動させる。
後は
plot "hoge.dat"
と入力すればよい 。
0712デフォルトの名無しさん
2009/10/22(木) 23:24:13なるほど。できました。お恥ずかしい・・・
ありがとうございました!!
0713exokTkAfr
2009/10/23(金) 21:55:200714名無しさん@お腹いっぱい。
2009/10/24(土) 20:45:43ところで、2chにMatplotlibのスレッドって無いよね?
誰か立ててくれないかな?
0715名無しさん@お腹いっぱい。
2009/10/24(土) 20:47:310716名無しさん@お腹いっぱい。
2009/10/24(土) 20:50:260717名無しさん@お腹いっぱい。
2009/10/24(土) 20:56:41俺が立てるよ。
今、テンプレつくってるからまっててくれ。
この板よりも、プログラムにする予定。
0718名無しさん@お腹いっぱい。
2009/10/24(土) 20:57:17よろしく。
0719名無しさん@お腹いっぱい。
2009/10/24(土) 21:08:59立てた。
http://pc12.2ch.net/test/read.cgi/tech/1256385982/
0720っむりなんだい!(無理難題)
2009/11/12(木) 13:47:36RGBカラープロットをしたいのですが、手法をお教えいただきたいです!
データが0.000000 〜 1.000000の間で正規化された、以下のような3次元列txtデータがあります。
---------------------------------
0.505624 0.507641 0.154209
0.505599 0.507641 0.148951
0.505577 0.507638 0.143832
0.505555 0.507632 0.138848
・
・
・
---------------------------------
これをgnuplotを用いて3次元グラフにします。
そのときに、コマンド
gnuplot> splot "(ファイル名).txt" w d
とすると、赤いドットで表示されます。
これを、以下の図のような3次元軸 X Y Z を、R G B に対応させて、輝度をつけた表示をしたいと考えています。
http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:R...
正規化されているデータは1~256(0~255)に正規化しなおすことももちろん可能なので、
どういったコマンドや手法を用いれば可能なのかご教授いただきたいです。
また、gnuplot環境ではむずかしいとあれば、ほかのグラフ生成フリーソフトなどの手法も教えていただきたいです。
0721名無しさん@お腹いっぱい。
2009/11/12(木) 16:22:200722名無しさん@お腹いっぱい。
2009/11/13(金) 11:41:240723名無しさん@お腹いっぱい。
2009/11/19(木) 21:00:56一番関心したのは出力したsvgデータをinkscapeで編集するための
inkscape用パッチをDLできるURLが紹介されていた事だった
0724名無しさん@お腹いっぱい。
2009/11/20(金) 00:44:300725Mei
2009/11/23(月) 14:55:53今,gnuplotで20列100行の値を描写したいのですが、値の内容が1E-7から7までと値の幅がひろい物で
matrixやimageでプロットしても真っ白で何も描かれませんでした。どうやったら描写されるのでしょうか?
以下のように描写したいのですが。。。描写できないのでしょうか???
http://www-antenna.ee.titech.ac.jp/~hira/study/fdtd/waveguide/f90/wg.gif
よろしくお願いします。
0726名無しさん@お腹いっぱい。
2009/11/24(火) 13:07:42X軸の数字の右端が切れてしまうんですが、どうすれば良いですか
0727名無しさん@お腹いっぱい。
2009/11/28(土) 16:04:00日本語でおk
0728名無しさん@お腹いっぱい。
2009/11/28(土) 16:14:06意地悪で言ってるんじゃなくて、きちんとした回答が欲しいならば
聞き手が理解できる質問をしてください。
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等に貼り付けるか
■ このスレッドは過去ログ倉庫に格納されています