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
0502名無しさん@お腹いっぱい。
2009/01/05(月) 23:18:18gnuplotで行間の処理はできないので、
事前に適当なコマンド/スクリプトで加工しておくか、
!で呼び出すことが必要
0503名無しさん@お腹いっぱい。
2009/01/05(月) 23:19:050504名無しさん@お腹いっぱい。
2009/01/06(火) 00:49:37やはり svg のままじゃ無理ですかね…
現状では gnuplot の png 出力はアンチエイリアス処理が出来ないので
svg 出力してから imagemagic で png にコンバートしてますが、gnuplot のせいか imagemagic のせいか、
これはこれでおかしな具合に半透明(アルファチャネルの値が斑状?)なものが出来たりして、微妙です
正式に gnuplot のバージョンが上がれば、png を cairo で出力するようになって
綺麗なビットマップ出力ができるんでしょうけど
inkscape 共々バージョンアップが待ち遠しいところです
0505名無しさん@お腹いっぱい。
2009/01/06(火) 00:51:50すげー昔に PC9801 でも試用した記憶はあるなー
0506492
2009/01/06(火) 12:01:49>>499のデータのファイル名hoge.datについて、シェル上で
d1=`head -1 hoge.dat | awk '{print $1}'`
d2=`head -2 hoge.dat | tail -1 | awk '{print $1}'`
d=`echo "$d2-$d1"|bc`
として取得できますが、このdをgnuplot上に渡す方法が分かりません。
! d1=`head -1 hoge.dat | awk '{print $1}'`
! d2=`head -2 hoge.dat | tail -1 | awk '{print $1}'`
! d=`echo "$d2-$d1"|bc`
print d
というふうにサクッとできれば良かったんですが・・・
何か方法ないでしょうか?
0507名無しさん@お腹いっぱい。
2009/01/06(火) 13:15:31正直 gnuplot じゃなく他の処理系を使うべき
◇ python(numpy)上で処理 して gnuplot.py に渡すなり
matplotlib で別のグラフ化エンジン使うなり
◇ R で全部
◇ (そのほか君の好きなやつを並べる)
0508492
2009/01/06(火) 13:46:57これ以上グチャグチャしてきたらそうします。
結局、>>506のような「gnuplotのshellコマンドからgnuplotへ値を渡す」のは不可能
という理解で正しいのですか?
0509名無しさん@お腹いっぱい。
2009/01/06(火) 14:17:24シェルスクリプトが書けるんなら、
元のデータから欲しいデータを計算するようなシェルスクリプトを書いて、
plot "< hoge.sh"
とすればプロットできる。
(hoge.shはシェルスクリプトの名前。実行可にして、フルパスで書かないとだめかも)
0510名無しさん@お腹いっぱい。
2009/01/06(火) 15:09:28ってことでしょ
0512名無しさん@お腹いっぱい。
2009/01/06(火) 19:24:20最新版4.2だっけ?を使ってるんだが、極座標にすると目盛に-が表示されない。
ごく普通に
set polar
set xrange [-1:1]
set yrange [-1:1]
set xtics -1,0.1
・・・
みたくやってるんだけど、x軸もy軸も目盛が1 , 0.9 , 0.8 , ..... , 0 , 0.1 , 0.2 , ...... ,1
ってなってしまう。
なんも悪いことしてない気がするんだけどなぁ。
だれか極座標マスターいたら教えてくれい。
0513名無しさん@お腹いっぱい。
2009/01/06(火) 19:47:17軸上の数字はその点での動径座標の値を示してるんだからその表示で正しい。
0514名無しさん@お腹いっぱい。
2009/01/06(火) 19:56:17だよなぁ。
隣の人にも同じコマンドでプロットしてもらったんだけどだめだった。
最新版のバグなんだろうか。
わけくさらん。
0515名無しさん@お腹いっぱい。
2009/01/06(火) 21:04:45極座標表示ではそれが正しいんだよ
0516名無しさん@お腹いっぱい。
2009/01/06(火) 21:29:07ここのくだりは間違ってるの?
0517名無しさん@お腹いっぱい。
2009/01/06(火) 21:58:36本来極座標表示するべきデータじゃない
0518名無しさん@お腹いっぱい。
2009/01/07(水) 16:39:210519名無しさん@お腹いっぱい。
2009/01/08(木) 03:54:230520名無しさん@お腹いっぱい。
2009/01/11(日) 09:39:51set size square
set xrange [-1:1]
set yrange [-1:1]
でグラフを正方形にしたのですが、出力されるeps形式のファイルをTeXで使用すると、
横長の長方形の画像の左側に正方形の領域が寄ってしまって右がわに余白の領域が生まれてしまいます。
TeXの設定でなく、epsファイル自体の余白なのですが、出力の余白の設定などできますでしょうか?
0521名無しさん@お腹いっぱい。
2009/01/11(日) 10:56:02いまは改善されてるかしらないけど
0522名無しさん@お腹いっぱい。
2009/01/11(日) 11:11:31hoge.epsの6行目
%%BoundingBox: 50 50 410 302
これね
0523名無しさん@お腹いっぱい。
2009/01/12(月) 02:34:520524名無しさん@お腹いっぱい。
2009/01/12(月) 19:43:57バウダリーボックスの設定できなかったっけ?
0526名無しさん@お腹いっぱい。
2009/01/13(火) 09:44:13バウンダリーボックス
???
0527名無しさん@お腹いっぱい。
2009/01/13(火) 09:55:370528名無しさん@お腹いっぱい。
2009/01/24(土) 13:10:390529名無しさん@お腹いっぱい。
2009/01/25(日) 02:38:09具体的には
100
1
0.01
1e-04
1e-06
という風に
これはどうすればいいですか?
0530名無しさん@お腹いっぱい。
2009/01/25(日) 04:00:010531名無しさん@お腹いっぱい。
2009/01/26(月) 17:19:160532名無しさん@お腹いっぱい。
2009/01/27(火) 02:25:350533名無しさん@お腹いっぱい。
2009/01/28(水) 12:59:46_ -‐ ´/ , -‐´、_, '⌒`^ 、 \::\ } l ヽヘ ヽ} / _|_ \
 ̄ フ´, / 丶\::V| | Vl ,' |____
. //./ `Vヽl | ヽ ' . | /| ヽ
/ ,イ/ Y/, ヽ.\ |. l (_ノ _ノ
|/ / | ∨ヘ. ト、 \_ |. |
. / / / l: / l ∨i 、 |  ̄ ! l lヽ│/ /
l│ / イ ,イ. l ト、ヽ / | :l :| | l | ヽ_ノ !ー┼‐ |‐┬
| | l_メ、」_,;./l L l V ∧ / :|/ ハ. ト、 | |./│ヽ l |
| ト. |.____ ヽ l´ヽ{ _⊥イ イ / / / l/⌒ヽ .| ー┼─ └── l |
| | ヽ | 、i┘::::i \ | r┬┬‐┬ァ V ,∧. ,' ´ | ー┼−
レ ヽ! ゝ- ' \l i,.┘:::::iノ / ,/〉│ :| { | _⊥_ l |
. 7/l/l/ 、 `'ー‐ ' ∠≠r'ノ:jノ :| | | (__丿 ヽ レ |
λ `i`ァー-- 、 /l/l/l ∧‐'.:|:::| ハ ', | l
`、 レ' ', ,/| ::| :|:::| ./ ヽ_> _| __|_ _ノ
` = 、 '、 ノ ,.イ∧'|:l.:/l:::|´ \ ._|
`>-r =ニi´、.,_`::: |:| { |:::l | .(_|
_,.イ´ヽ.7 / /:\;八:V:ノ | ノ
/7:::::! ○O'´ /::::::::/ヽ.
0534名無しさん@お腹いっぱい。
2009/02/04(水) 13:21:25gnuplot> set xrange [-10:110]
gnuplot> set yrange [-10:110]
gnuplot> set pm3d
gnuplot> splot "den.dat"
とのようにやっているのですがどこが違うのか指摘お願いします
データファイル
http://www1.axfc.net/uploader/File/so/17996.txt
0535名無しさん@お腹いっぱい。
2009/02/04(水) 13:22:47xの値が変わるごとに1行空行を入れなきゃだめ
0536名無しさん@お腹いっぱい。
2009/02/04(水) 13:36:52できました!ありがとうございます!
0537名無しさん@お腹いっぱい。
2009/02/05(木) 22:10:25Windowsのコマンドプロンプトからgnuplotを起動して
pltファイルを実行してグラフを画像化しgnuplot終了。
って感じのバッチファイルを作りたいのですが、コマンドプロンプトからの実行は
可能でしょうか?可能なら例文を教えていただけないでしょうか。
よろしくお願いします。
尚、画像化するまでのpltファイルは完成しております。
0538名無しさん@お腹いっぱい。
2009/02/05(木) 22:19:38いや、そのままコマンドプロンプトから
wgnuplot.exe hoge.plt
ってすればいいと思うけど。
(パスは通ってるとして)
0539名無しさん@お腹いっぱい。
2009/02/05(木) 22:23:16あらかわいい
0540名無しさん@お腹いっぱい。
2009/02/05(木) 22:30:19レスありがとうございます。
そのままpltを続けて書くだけだったんですね。
明日職場へ行って試してみます。
0541名無しさん@お腹いっぱい。
2009/02/06(金) 22:19:09職場で試したらアッサリ動きました。
これで毎日上司への報告がラクになります。
ありがとうございました。
0542名無しさん@お腹いっぱい。
2009/02/09(月) 00:28:47>sh: kpsexpand: command not found
は、もし debian の gnuplot でのことなら依存関係のバグみたい。
ttp://bugs.debian.org/cgi-bin/bugreport.cgi?bug=447324
tetex-bin をインストールしたら上記のメッセージが出なくなった。
># aptitude install tetex-bin
0543名無しさん@お腹いっぱい。
2009/02/11(水) 00:38:12プロットするグラフ画像に最大値、最小値、平均値を表示したいのですが、
gnuplotだけで可能でしょうか?
0544名無しさん@お腹いっぱい。
2009/02/11(水) 01:41:48データから最大値・最小値・平均値を抜き出すのをgnuplotだけでやりたいっていうんなら無理。
0545名無しさん@お腹いっぱい。
2009/02/11(水) 18:02:180546名無しさん@お腹いっぱい。
2009/02/11(水) 20:24:59f(x) = ( sin(M*pi*x)/sin(pi*x) ) **2
M : 10とか20とかの整数
という関数f(x)をプロットしたいのですが、
上手く行きません。
具体的には、 x = n ( n:整数 )にデルタ関数のような鋭いピークを持つ関数なのですが、
nによりピークの高さが違います。(極限をとるとnによらずf(n)→M^2になるはず)
アドバイスお願いします
0547名無しさん@お腹いっぱい。
2009/02/11(水) 21:21:49set sample 1000
とかしてプロット点ふやしてみ
0549名無しさん@お腹いっぱい。
2009/02/17(火) 10:50:38last modified 31 Aug 2007
System: Linux 2.6.26-1-686
OSはDebian lennyです。
グラフをEPS出力したら文字化けします。
日本語はまったく使っていないのですが、対処法がわかれば教えてください。
0550名無しさん@お腹いっぱい。
2009/02/18(水) 01:48:310551名無しさん@お腹いっぱい。
2009/02/24(火) 02:01:28/|/|/|/|/| ←このように連続的なグラフになってしまいます。
実際には
///// ←こういった離散的なグラフになると思うのですが、
どのようにすればそのようなグラフを描けるでしょうか?
0552549
2009/02/24(火) 02:28:32調べたら、gnuplotの問題ではありませんでした。しかも、文字化けですらなかったようです。
シェルスクリプトで実行していたのですが、gnuplotでグラフをeps出力した後、
eps2epsをしたところ、文字が歪んでいたようです。
失礼しました。
0553549
2009/02/24(火) 02:32:27ついでなので、答えてみる。
gnuplot> f(x) = 8*x - floor(8*x)
gnuplot> set sample 100000
gnuplot> set xrange[-1:1]
gnuplot> plot f(x) w d
0554名無しさん@お腹いっぱい。(551)
2009/02/24(火) 09:52:33ありがとうございました。
0555名無しさん@お腹いっぱい。
2009/02/25(水) 16:52:180556名無しさん@お腹いっぱい。
2009/02/26(木) 14:53:53gp424win32x11.zip
gp424win32.zip
これらは何が違うのでしょうか・・
Vistaでgp424win32.zipを使用してみると、Helpファイルを見ることができず、日本語化にも失敗してしまいました
Vistaでは日本語化は不可能でしょうか・・?
0557556
2009/02/26(木) 15:37:57しかしmnuファイルを読み込めていないのか、依然日本語化は出来ないです
どうかご教示お願いします
0558551
2009/02/26(木) 18:03:50b(x) = 3*x - floor(3*x)
c(x) = 4*x - floor(4*x)
d(x) = 8*x - floor(8*x)
上のa〜d(x)をそれぞれ一つずつプロットするなら
///// ←正しいグラフになるのですが、
a〜d(x)をすべて同じ座標にプロットすると
/|/|/|/|/| ←b(x),c(x)がこのようになってしまいます。
a〜d(x)をすべて/////この形で描きたいのですが、どのようにすればよいでしょうか?
このコマンドを打ち込みました。
a(x) = 2*x - floor(2*x)
b(x) = 3*x - floor(3*x)
c(x) = 4*x - floor(4*x)
d(x) = 8*x - floor(8*x)
set sample 100000
plot [0:1][0:1] a(x) t "g_2(V)", b(x) t "g_3(V)", c(x) t "g_4(V)", d(x) t "g_8(V)" w d
0559名無しさん@お腹いっぱい。
2009/02/26(木) 18:17:14ちょっとはヘルプとか読めば?
0560名無しさん@お腹いっぱい。
2009/02/28(土) 03:26:38デフォルトの関数表示がwith linesになってるだろうからそれを…
0561名無しさん@お腹いっぱい。
2009/02/28(土) 23:10:10plot [0:1][0:1] a(x) t "g_2(V)" w d , b(x) t "g_3(V)" w d , c(x) t "g_4(V)" w d , d(x) t "g_8(V)" w d
では?
a(x), b(x), c(x) が /|/|/|/|/| になっているのは、
with dots がかかっていないからだと思います。
a(x) は ///// になっているように見えますが、c(x)で上書きされているので
見た目はうまく表示できているように見えているのだと思います。
0562556
2009/02/28(土) 23:14:11Vistaで日本語化出来た方はいらっしゃいますか?
0563名無しさん@お腹いっぱい。
2009/03/01(日) 04:48:15Windows 使いではないのですが憶測で書きます。
gp424win32.zip はネイテブ版で gp424win32x11.zip は Cygwin 版なのでは?
mnu をコピーした後、フォント設定をしましたか?
お役にたてなかったらごめんなさい。
0564名無しさん@お腹いっぱい。
2009/03/01(日) 10:18:35レスありがとうございます
なるほど、ではやはりVistaでもgp424win32.zipで大丈夫そうですね・・
フォント設定はしました
図を出すだけなら日本語は使えます
しかしXPの時と同様にmnuファイルを置き換えてもメニューの日本語化は出来ません・・
0565551
2009/03/01(日) 13:21:00ありがとうございます。
0566549
2009/03/02(月) 21:46:23>565は「ヘルプ嫁」と言っていた人にも耳を傾けるべし
0567名無しさん@お腹いっぱい。
2009/03/02(月) 23:12:10gnuplot> help style
とすると、バージョンにもよると思いますが、
...
以下は、x を点で描画し、x**2 をデフォルトの方式で描画します:
plot x w points, x**2
以下は、tan(x) を関数のデフォルトの方式で、"data.1" を折れ線で描画します:
plot [ ] [-2:5] tan(x), 'data.1' with l
...
みたいなのが出てくるので、書式をw d と指定しないところは
デフォルトの方式で書かれるみたいです。
デフォルトの書式は、例えば、
gnuplot> show style
とすると、
Data are plotted with points
Functions are plotted with lines
Fill style is empty with border
と出力されるので、確認することができます。
というわけで、>565 さんの「help を参照してね」
というのは、有意義な提案ですよ。
っていう意味。
0568名無しさん@お腹いっぱい。
2009/03/04(水) 20:46:020569名無しさん@お腹いっぱい。
2009/03/14(土) 10:44:07plotされたグラフの線がスムーズではなく、
非常に汚く見えます。
これをフォントにアンチエイリアスをかけた後のように
スムーズにできないでしょうか?
0570名無しさん@お腹いっぱい。
2009/03/14(土) 12:19:47set sample 3000
とかやってみてはいかがでしょう?
0571名無しさん@お腹いっぱい。
2009/03/14(土) 15:25:52wxtとx11の違いみたいな。
0572名無しさん@お腹いっぱい。
2009/03/14(土) 15:57:140573569
2009/03/14(土) 18:12:40> wxtとx11の違いみたいな。
ヒントありがとうございました。
自分でコンパイルしてwxtがつかえるようになりました。
正直、terminal=x11でのグラフは汚すぎて見れなかったのですが、
やっと普通になりました。
0574名無しさん@お腹いっぱい。
2009/03/14(土) 20:16:45無設定だとlineの色は赤、緑、青の順になっていると思いますが、
これをデフォルトで「青、赤、緑」としたいのですが、
どのように設定すれば良いですか?
例えば、.gnuplot などに記述できる設定があると嬉しいです。
0575名無しさん@お腹いっぱい。
2009/03/16(月) 00:33:42http://www.google.co.jp/search?q=gnuplot+linetype
0576名無しさん@お腹いっぱい。
2009/03/16(月) 03:04:34linetype も linecolor も知っていますが、
デフォルトの設定を上書きする -- 例えば .gnuplot などに記述でき、
自動的に読み込まれる -- 設定を探しています。
紹介されている方法は、plot毎にlinestyleを指定しなければならず、
なんとかこれを回避したいわけです。
そういった設定方法はありますか?
0577576
2009/03/16(月) 03:51:19本当は良くないのですが、一時的な処置です。
>>576のやり方を知っている方がいれば教えてください。
0578名無しさん@お腹いっぱい。
2009/03/16(月) 04:23:24set style line 1 lc rgb 'blue'
set style line 2 lc rgb 'red'
set style line 3 lc rgb 'green'
set style increment user
0579576
2009/03/16(月) 14:20:22それでうまくいきました。
set style increment user
がないと効果がないのですね。
Syntax:
set style increment {default|userstyles}
show style increment
gnuplot> show style increment
Plot lines increment over user-defined line styles rather than default line types
('increment' は意味があまり合っていないような気がしますが、
そうなってるんですから仕方ないですね。)
ありがとうございました。
0580名無しさん@お腹いっぱい。
2009/03/19(木) 10:23:31と思ったら、linecolorの指定ってv4.2からなのか・・・orz
0581576
2009/03/27(金) 13:48:18(次スレのテンプレに追加希望) を見てたら、CVS HEAD
が欲しくなったので、CVSのをコンパイルして使ってみました。
今自分のなかで gnuplot が熱くなりかけてます。
やっとマニュアルをちゃんと読む気になりました。
0582576
2009/03/27(金) 13:51:10ttp://skuld.bmsc.washington.edu/~merritt/gnuplot/canvas_demos/index.html
の方がいいかも。個人的にこっちのフォーマットの方が好きです。
0583576
2009/03/28(土) 09:13:33今のところ、マウスで特定の line をトラッキングする機能
(例えば、ttp://www.google.com/finance?q=spy のフラッシュが
実装しているような機能) は gnuplot にはないようですね。
誰か、このような機能を実装した方、もしくは同様のパッチを
持っている方はいませんか?
0584名無しさん@お腹いっぱい。
2009/03/28(土) 13:44:57データ用のPC変えようと思ってるんだが・・
0585576
2009/03/28(土) 13:59:42私はVistaを触ったことすらないですが、
明らかに>>564さんはgnuplotをVista上で動かしてますね。
普通に動くのではないでしょうか。
0586名無しさん@お腹いっぱい。
2009/04/04(土) 16:41:29派生gnuplot?
0587名無しさん@お腹いっぱい。
2009/04/04(土) 18:51:410588名無しさん@お腹いっぱい。
2009/04/06(月) 20:58:010589名無しさん@お腹いっぱい。
2009/04/09(木) 08:29:21プロットのマーカーを変えるときは
エディタで開いて置換しているのですが、
gnuplot のコマンドでできますか?
OS は UNIX ではなく Windows Vista で、
gnuplot はたぶん最近のバージョンです。
0590名無しさん@お腹いっぱい。
2009/04/09(木) 15:25:04左揃えにする方法はありますか?
0591名無しさん@お腹いっぱい。
2009/04/09(木) 16:06:420592590
2009/04/09(木) 17:15:58ありがとうございます。
残念ながら、それだと線とタイトルが入れ替わるだけで、タイトルは右揃えのままでした・・・
set keyで色々設定できるんですね。
widthとかspacingとかsamplenなどは便利そう。
0593名無しさん@お腹いっぱい。
2009/04/11(土) 14:12:26メニューからではなく、スクリプトの中で実行したいのですが。
0594名無しさん@お腹いっぱい。
2009/04/12(日) 06:40:23lineplotで前行の同コラムのデータの値が
現行のデータの値よりも小さい場合は別の線の色を
使いたいのですが、なにかうまい方法はありませんか?
例えば、
1 10
2 20
3 30
4 20
5 0
のデータがあったと仮定して、
1→2, 2→3 は線の色を黒、3→4, 4→5は色を赤に
するにはどうすれば良いですか?
0595名無しさん@お腹いっぱい。
2009/04/13(月) 05:00:29$ cat tmp
#!/usr/bin/gnuplot
plot "file"
pause -1
これをシェルスクリプトみたいに、plotするファイルを引数で./tmp fileと与えて、plot "$1"という感じで実行できないでしょうか?
0596名無しさん@お腹いっぱい。
2009/04/13(月) 05:47:57自己解決しました。
ここで聞くより、自分で色々試した方が問題が早く解決するみたい。
>>595
「plotするファイル」の意味がわからないけど、
#!/usr/bin/gnuplot
load "$1"
じゃだめなの?
0597595
2009/04/13(月) 07:27:14わかりにくい説明ですいません。>>595の例では
$ cat tmp1
#!/usr/bin/gnuplot
plot "file"
pause -1
$ ./tmp1
というのを
$ cat tmp2
#!/usr/bin/gnuplot
plot "$1"
pause -1
$ ./tmp2 file
というふうに、シェルスクリプトの引数と同じ感じで出来たら便利かなと。
gnuplotに実行させる内容をあらかじめシェル等で生成しておき、
gnuplotにはヒアドキュメントで読ませるだけ、という方法もよく使われるようですが、
それだとpause -1がうまく効かなくて困るんですよね・・・
(-persistオプションは個人的に好みじゃないので)
ちょっと見るのにいちいちpsやpngなどに出力するのは面倒なので、
出来る限りgnuplotの表示だけで済ませたいです。
0598名無しさん@お腹いっぱい。
2009/04/13(月) 14:23:11もっとうまいやり方もあると思うけど。
0599名無しさん@お腹いっぱい。
2009/04/13(月) 15:49:080600名無しさん@お腹いっぱい。
2009/04/13(月) 15:56:59要求条件にも寄るけど
0601名無しさん@お腹いっぱい。
2009/04/13(月) 19:23:47ここから先はgnuplot関係ないから、わかんなきゃシェルスクリプトのスレかくだ質で聞いた方がいいよ
■ このスレッドは過去ログ倉庫に格納されています