トップページunix
982コメント298KB

gnuplot を使おう。 その2

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2006/11/28(火) 22:10:25
グラフ描画ソフト gnuplot のスレ。

gnuplot 公式 Web ページ
http://www.gnuplot.info/

前スレ
gnuplot を使おう。
http://pc8.2ch.net/test/read.cgi/unix/1002453983/l50
0270名無しさん@お腹いっぱい。2007/11/21(水) 08:40:38
そうですか
0271名無しさん@お腹いっぱい。2007/11/23(金) 21:34:14
わかりません><;
0272不安になってきた2007/11/24(土) 09:09:57
まさか >269,271 ってマジレスじゃないだろうな…
0273名無しさん@お腹いっぱい。2007/11/27(火) 23:09:42
set parametric
f(t)=-sqrt(t**2-t)+t\
g(t)=sqrt(t**2-t)+t
plot real(f(t)),imag(f(t)),real(g(t)),imag(g(t))

二次関数の共役複素解ですが、gnuplotで読み込むとおいおいって感じに
なるんやけど、どっか間違ってますか??
0274名無しさん@お腹いっぱい。2007/11/28(水) 10:43:53
「おいおいって感じ」じゃわからん。
0275名無しさん@お腹いっぱい。2007/11/28(水) 13:19:33
グラフがどうみても共役複素数にみえないってこと。
0276名無しさん@お腹いっぱい。2007/11/28(水) 13:46:17
おいおいっ
02772752007/11/28(水) 14:00:12
>>273
試してみたら、色々問題あるね。だけど、それはおいおいに治して行こうよ
0278名無しさん@お腹いっぱい。2007/11/29(木) 01:26:31
おいおい流行りだなおいおい
0279名無しさん@お腹いっぱい。2007/11/29(木) 02:08:07
おいおい。
0280名無しさん@お腹いっぱい。2007/11/29(木) 18:52:39
少しはgnuplotの話をしろよ、おいおい。
0281名無しさん@お腹いっぱい。2007/11/29(木) 21:30:33
>>234
亀レスですが

plot '-' using 2:3:xtic(1)
A 1 3
B 3 8
C 5 7
D 6 5
\E 7 9
F 9 4
e
でどうでしょうか?
0282名無しさん@お腹いっぱい。2007/12/05(水) 18:09:06
プログラムからgnuplotを起動するとき、
複数起動させずに最初に起動したgnuplotに値を渡すように設定できますか?

現状ではプログラムの処理速度がはやく、
次々に起動し、グラフが完全に出力されないことがあり困っています。
0283名無しさん@お腹いっぱい。2007/12/05(水) 19:14:02
日本語でおk
02842822007/12/05(水) 19:28:08
やりたいことはdata0,data1,data2,・・・というデータを
data0.jpeg,data1.jpeg・・・のように自動的に描画・保存してほしい

このときプロット数が多いので、処理が終わってから次のデータへというふうにやりたい
わかってもらえます?
0285名無しさん@お腹いっぱい。2007/12/06(木) 00:31:20
what is 「data0,data1,data2,・・・というデータ」?
0286名無しさん@お腹いっぱい。2007/12/06(木) 04:05:44
>>282
プログラムから、ってのを具体的にplz。

例えばスクリプトやらバッチファイルやらで、
gnuplot data.gpl
(.gplの中身は手で打つコマンドを列挙したもの)
とかを繰り返すものであれば、そんな事態はあまり起こらない気がするし。

データが出そろうまでgnuplotを呼ばないようにすることのほうが問題では?
エスパー外してたらごめんちゃい。
0287名無しさん@お腹いっぱい。2007/12/06(木) 08:34:57
>286みてエスパー2号

結果出力をファイルに書くのと同時(終了を待たず)に
データファイル読み込みなぐにゅうぷろっと起動、尻切れショボーン

>286 の通りにやるか素直に pipe で呼び出せばいーのに...


で、元質問者はマジで日本語の勉強すべし
02882822007/12/06(木) 12:44:13
長文になるのを覚悟し詳細に書くと、現在はC++からplot.txtというファイルに
fout << "set output 'data" << t(プログラム中の変数) << ".jpeg'\n" << "sp 'data' w l\n" << "quit" ;
と書き込み、これをsystem("pgnuplot.exe plot.txt"); でpgnuplotへ送っています。
メインプログラムは、
1.値の計算 → 2.dataに結果の出力 → 3.gnuplotに値を渡し、グラフとして保存、終了 → 1へ戻る
というループをしています。
ここで、1と2でかかる時間が3でかかる時間より短いことにより、3が実行されるたびに別のgnuplotが起動し資源を食います。
そこで、解決法として、起動中のgnuplotに値を渡すことを考えました。

>>286 
さんのように、data.gplを作る場合、手で打つのがめんどくさい、プログラム中の変数(set hidden3d x,y 等)を使うので変更するのが大変等の理由で断念しました。
(でも、それをプログラムでできるようにすればいいのかな?)

その後、プログラムからdata.jpegの有無を確認、あれば次のループを実行、無ければしばらく待機みたいなプログラムを考えています。
(ただgnuplotが、空のjpegを出力してからそこに上書きだと不可能)

>>287 
自分でも、己の日本語力の無さに危機感を覚えているんですが、おすすめの書があったら教えてください。
02892822007/12/06(木) 12:50:40
間違いました。
hidden3d ではなく dgrid3d でした。

あと、やはりjpegを作ってから書き込みたったので、考えていたプログラムは使えそうにないです。
0290名無しさん@お腹いっぱい。2007/12/06(木) 13:07:41
データが揃ってから(書き終わってから)起動すればいいだけだし
gnuplot の話じゃないじゃん?
0291名無しさん@お腹いっぱい。2007/12/06(木) 14:58:14
>>288
3.の処理を待たずに1.に戻ってるのが問題と思われ。
待つ方法を考えてみては。呼び出し方とか。
0292名無しさん@お腹いっぱい。2007/12/06(木) 16:20:10
>291
違う 2. を待たずに 3. を呼んでるのが
アホ&&ヴァカたる所以

(pipe で呼び出すなら終了を gnuplot 側が待ってくれるけど)
02932822007/12/06(木) 16:38:07
結局、別プログラムでファイル数や、変数に応じてコマンドを記述したdata.gplを作成してそれをgnuで読ませることにしました。

ここで別の問題が発生し、load 'data.gpl' を実行すると、 set dgrid3d の行でエラーが発生しgnuが強制終了します。
dgrid3dを省略すると問題なく動き、手で入力しても動くのですが、なぜでしょうか?
以下 data.gplの中身です。
set terminal jpeg
set hidden3d
set dgrid3d 60,60
set pm3d
set pm3d map
unset colorbox
set palette defined ( -3 'blue' , 0 'white', 3 'red')
set output '0.jpeg'
sp [0:60][0:60][-0.0005:0.0005] 'data0' w l
set output '1.jpeg'
sp [0:60][0:60][-0.0005:0.0005] 'data1' w l
0294名無しさん@お腹いっぱい。2007/12/06(木) 22:53:51
>>293
とりあえずエラーメッセージのコピペきぼんぬ
0295名無しさん@お腹いっぱい。2007/12/07(金) 15:18:15
すみません、解決しました。
原因は[0:100]を[0:60]にしていたことでした。
ご迷惑おかけしました。
0296名無しさん@お腹いっぱい。2007/12/11(火) 10:51:11
凡例の中の文字列(plotのtitleで指定するやつ)を斜字体(イタリック)にする方法、知りませんか?
0297名無しさん@お腹いっぱい。2007/12/12(水) 09:16:02
replotと打つのが面倒なのですが、毎回自動でreplotされるような設定はないでしょうか?
0298名無しさん@お腹いっぱい。2007/12/12(水) 11:36:00
http://gnuplot.info/というところで最新版のgnuplotをダウンロードしたのですが、[gp422dj2.zip]を開いてgnuplotというフォルダが出てきたんですが、gnuplotらしいアプリケーションが見当たりません。原因わかる方いましたら教えてください。
お願いします。
0299名無しさん@お腹いっぱい。2007/12/12(水) 13:27:49
>>297
re で済ます
03002972007/12/13(木) 00:52:23
>>299
ない、ということですか・・・承知しました。有難うございます
0301名無しさん@お腹いっぱい。2007/12/13(木) 05:04:58
>>300
対話型ならいざ知らず、ファイルに書き出すのも基本的にplot/replotが行われる
タイミングで実行されるわけだから、そんなん自動化したらえらいことになる、
と考えたらいいのではないかな。なんとなくだけど。
0302名無しさん@お腹いっぱい。2007/12/13(木) 07:00:57
むしろ replot あるだけで結構楽じゃん?
0303名無しさん@お腹いっぱい。2007/12/13(木) 12:35:16
>>299
reじゃなくてrepでは?
それともreでaliasを張るとか…?

というか、gnuplotってalias設定できましたっけ?
0304名無しさん@お腹いっぱい。2007/12/13(木) 15:54:56
タイトルに日本語を含み、x軸目盛とy2軸ラベルを回転させたグラフを
描くにはどうすればいいのでしょうか?
下のようにすると、下の(1)のようになり文字が回転しません。
日本語フォントを使わなければ(2)のようになるのですが、
当然タイトルの日本語が化けます。
本当は、首を右にかしげたときに正常に見えるように文字を回転させたいのですが、
90を270に変えても文字列全体の回転方向が変わるだけで、
文字自体の向きは変わりませんでした。
Gentoo Linux にインストールした gnuplot 4.2 を使っています。

### test.gp utf8
set terminal png medium font "/mnt/c/WINDOWS/Fonts/msgothic.ttc"
set output "test.png"
set title "日本語"
set xtics rotate by 90
set y2label "y2" rotate by 90
plot sin(x)

(1) http://yuffie.jp/upload/files/17445.png
(2) http://yuffie.jp/upload/files/17446.png
0305名無しさん@お腹いっぱい。2007/12/16(日) 16:07:10
>>297
tail -f を参考にする
0306名無しさん@お腹いっぱい。2007/12/26(水) 18:17:28
set xtics pi
plot sin(x)
とやるとグラフの両端が切れて終わってしまうのは仕様ですか?
0307名無しさん@お腹いっぱい。2007/12/26(水) 18:20:22
あるデータの散布図を描きたいんですが、

値が小さいやつと大きいやつがあるときに中間を波線で省略できませんか?
波線は別にでなくてもいいんですが、数値軸を書き換えたいです。
0308名無しさん@お腹いっぱい。2007/12/31(月) 13:08:37
どなたか、乱数生成関数、
rand(x) の使い方を教えて下さい。
x に 0 0.5 1.5 など、いろいろ
入れても、1.00 しか返ってきません。
0 を入れた場合、数回は 0〜1の
値が出てくるが、すぐ 1.00 に張り付いてしまいます。

Windows 版 wgnuplot Version 4.2 です。
0309名無しさん@お腹いっぱい。2007/12/31(月) 13:59:56
マニュアルを読んでから来てね(はあと)
0310名無しさん@お腹いっぱい。2007/12/31(月) 14:22:44
308 です。
次のマニュアルを読んでもさっぱり解りません。
ちなみに私は、乱数が何であるか、そのseed(種)、
が何なのかについては知っているつもりです。
具体的に、例えば0〜1の実数を返すコードを
教えて下さい。できれば、種の設定についても。

10.1.1 Random number generator
組み込み関数rand(x) の挙動はversion 3.8l で変更されました。
古いgnuplot スクリプトで、rand(x>0) により同じ種からなる
疑似乱数列が生成されることを期待しているような場合は、
代わりにrand(0) を使うように修正する必要があります。
現在の挙動は以下の通りです:
rand(0) 内部に持つ2 つの32bit の種(seed) の現在の値から
生成される[0:1] 区間内の疑似乱数値を返す。
rand(-1) 2 つの種の値を標準値に戻すrand(x) x>0 ならば
両方の種にx の値に基づく値を設定する。
rand({x,y}) x>0 ならばseed1 をx に、seed2 をy に設定する。
0311名無しさん@お腹いっぱい。2007/12/31(月) 19:40:22
>>310
ごめん、ネット工作に忙しくて作ってないわwww
0312名無しさん@お腹いっぱい。2007/12/31(月) 23:02:37
308 の自己レスです。
自己解決しました。
rand(x) x > 1.00 で種の設定。
以後、rand(0) で0〜1の乱数生成でした。
0313名無しさん@お腹いっぱい。2007/12/31(月) 23:05:24
rand({x,y}) x>1.00 y> 1.00 の方が良いんじゃないの?
rand({x,x})とrand(x)の比較はやって見た?
0314名無しさん@お腹いっぱい。2008/01/06(日) 17:30:08
なぜ、.rmには対応していないんだVLCよ…
インストール不要でrmを再生できるのはお前だけだと信じていたのに
0315名無しさん@お腹いっぱい。2008/01/06(日) 17:31:02
誤爆でした
0316名無しさん@お腹いっぱい。2008/01/09(水) 14:10:21
gnuplot tips の3次元カラー表示の色を変えたい のとおりに設定してもうまくいきません
set palette defined (-3 "blue", 0 "white", 1 "red") 
としても0の値が白では表示されません、うっすい水色で表示されます
ttp://upfile-2ch.net/light/general/count.cgi?upfile0072.jpg
こんな感じ
0317名無しさん2008/01/10(木) 19:04:30
vistaでwgnuplot.exeを実行して、ディレクトリからopenしたいんですが、開こうとすると終了してしまいます。
解決策はありますか?? 教えてください!
0318名無しさん@お腹いっぱい。2008/01/10(木) 19:14:55
XPにすれば動くよ
0319名無しさん@お腹いっぱい。2008/01/12(土) 22:22:38
質問です。
gnuplotを立ち上げる度に設定ファイルをロードするのがちょっと面倒なので、
起動するときに自動的に設定を読み込むようにするにはどうすればいいですか?
0320名無しさん@お腹いっぱい。2008/01/13(日) 13:51:57
スレ違いだけど、「R」関連のスレってある?
Rだけだと、検索が膨大に出てきてどーしようもない。
0321名無しさん@お腹いっぱい。2008/01/13(日) 23:10:27
>>320
「R 統計」で検索
0322名無しさん@お腹いっぱい。2008/01/15(火) 14:44:07
>>320
= 統計解析フリーソフト R 【第2章】 =
http://science6.2ch.net/test/read.cgi/math/1152449095/
とか。
0323名無しさん@お腹いっぱい。2008/01/19(土) 17:10:23
tan(y) + e^(-y) = x
のグラフを書くにはどうしたらよいですか?
0324名無しさん@お腹いっぱい。2008/01/20(日) 08:09:13
>>323
set parametric
0325名無しさん@お腹いっぱい。2008/01/21(月) 10:29:45
>>324
その後は?
0326名無しさん@お腹いっぱい。2008/01/21(月) 11:07:14
有料となります。
0327名無しさん@お腹いっぱい。2008/01/21(月) 14:36:37
体で払うのはダメですか?
0328名無しさん@お腹いっぱい。2008/01/22(火) 01:04:39
>>327
GPLでの公開が条件です
0329名無しさん@お腹いっぱい。2008/02/06(水) 00:28:28
別々のカラム(例えば、3と4)に入っている文字列を連結して表示することは出来ますか?
1つのカラム(例えば、3だけ)だとうまく行くのですが、…

こんなイメージです。(↓)

plot "data.csv" using 1:2:sprintf("%s+%s",$3,$4) with lines
0330名無しさん@お腹いっぱい。2008/02/06(水) 10:52:32
>>329
awkで加工するのが簡単じゃね?
0331名無しさん@お腹いっぱい。2008/02/06(水) 11:08:36
lineの3カラム目って何になるの?
03323292008/02/06(水) 18:50:55
>>330
普通はそうですよねぇ…、ちょっと事情がありまして
出来れば gnuplot 単独でやれないかと考えています。

>>331
こんな感じのイメージです。
1カラム目と2カラム目で (x,y) を結んで、その付近に3カラム目と
4カラム目の文字列を打ちたいと考えています。

1.1 3.14 "2008-11-12 00:34JST" Tarou
2.2 3.33 "2008-11-13 00:33JST" Jirou
2.3 2.99 "2008-11-15 N/A" Saburo
3.9 9.99 N/A N/A
4.2 3.33 "2008-11-13 00:33JST" N/A

ちょっと間違いがありました。こんなイメージです。

plot "data.csv" using 1:2 with linespoints ,\
"" using 1:2:sprintf("%s+%s",$3,$4) with labels

gnuplot だけでやろうとすると、label を2回にわけてちょっと
ずらして表示するしかないのかな?
0333名無しさん@お腹いっぱい。2008/02/07(木) 00:09:39
"2008-11-12 00:34JST" って一つの要素として扱ってくれたっけ?
0334名無しさん@お腹いっぱい。2008/02/07(木) 19:35:49
>>33
それは大丈夫の筈
0335名無しさん@お腹いっぱい。2008/02/14(木) 00:05:27
4.3 のバイナリかソース(cvsでないもの)
どこかに置いてませんかね?
03363292008/02/14(木) 18:06:44
329 です。いろいろと調べていたら、

using 1:2:(sprintf("%s+%s",strcol(3),strcol(4)))

で、行けそうな事が分かりました。

質問を見て(?)書いてくれたエキスパートの方、ありがとうございました。
大変に参考になりました!感謝です!
0337名無しさん@お腹いっぱい。2008/03/06(木) 21:14:30
plotしたpointの近くにその値(数字)を書くのはどうしたらいいのでしょう。
やっぱり座標をあわせてlabelを置くしかないのでしょうか。
0338名無しさん@お腹いっぱい。2008/03/08(土) 08:05:54
一つ前の記事を読めと言えと?
0339名無しさん@お腹いっぱい。2008/03/08(土) 15:17:14
あらら、、、mOm
0340名無しさん@お腹いっぱい。2008/03/08(土) 15:38:38
4.2.2以降の機能なんですね。
0341名無しさん@お腹いっぱい。2008/03/19(水) 17:13:53
X 軸に時間データを割り当てたいが
元データが 19 Mar 16:59:17 みたいな感じで
help date を元に
set format x "%d %B %H:%M:%S"
ってやったら plot 時に Bad format character って言われてしまいます

そもそも help date すると
This form of the command is deprecated. Please see `set style function`.
って書いてあるけど set format x 以外に
どういうやり方をすればいいのか help set style function しても
よくわからないです… orz
0342名無しさん@お腹いっぱい。2008/05/03(土) 01:36:25
月ごとの時系列データを set format x "%Y-%m" として
YYYY-MM という表記でグラフ化しています。
期間が長くなると、x軸のラベルが詰まって見難くなるのですが
文字が重ならないように間引く方法はありますか?
0343名無しさん@お腹いっぱい。2008/05/11(日) 22:37:14
グラフ上で右クリックすると範囲選択できてズームインできますが、
ズームアウトするにはどうやるんでしょうか?
0344名無しさん@お腹いっぱい。2008/05/11(日) 23:59:39
グラフ上でh押すとヘルプでるよ
>u `builtin-unzoom`
0345名無しさん@お腹いっぱい。2008/05/12(月) 13:42:37
>>344
ありがとう!
0346名無しさん@お腹いっぱい。2008/05/24(土) 22:54:10
初めて使ったのですがcsvファイルってどうやって開くのですか?
普通にopenでは開くことが出来ないのですが
0347名無しさん@お腹いっぱい。2008/05/24(土) 23:24:03
plot
0348名無しさん@お腹いっぱい。2008/05/26(月) 15:10:38
いまPlot32を使ってグラフを書いているのですが
上付き文字下付き文字を入力することが出来ません。
従ってgnuplotへの乗り換えを考えているのですが
これだと可能なのでしょうか?
0349名無しさん@お腹いっぱい。2008/05/26(月) 15:22:41
もちろんそうよ
0350名無しさん@お腹いっぱい。2008/06/15(日) 16:07:22
y=0 (x<5)
=x (5≦x≦10)
=1 (x>10)

のようなグラフを描きたいのですが、どんなコマンドを入れればよいのでしょうか。
0351名無しさん@お腹いっぱい。2008/06/15(日) 16:18:25
plot x<5?0:x<=10?x:1
だけど
plot x<5?0:x<=10?x/5-1:1
だと思う
意味がわからなかったら三項演算子でググれ
0352名無しさん@お腹いっぱい。2008/06/17(火) 23:33:18
gnuplotを起動したときに最初に出る↓のようなロゴ(?)を抑制する方法ってないでしょうか?

G N U P L O T
Version 4.0 patchlevel 0
last modified Thu Apr 15 14:44:22 CEST 2004

0353名無しさん@お腹いっぱい。2008/06/18(水) 11:15:37
なんで?
0354名無しさん@お腹いっぱい。2008/06/18(水) 19:44:55
うざいから
0355名無しさん@お腹いっぱい。2008/06/18(水) 22:23:14
ウザイなら使わなきゃいいんじゃね?
0356名無しさん@お腹いっぱい。2008/06/18(水) 23:03:06
はい、次!
0357名無しさん@お腹いっぱい。2008/06/21(土) 18:33:23
gnuplotは対話的には使わんし、まぁそんな気にならん>ロゴ
03583502008/06/22(日) 23:45:25
>>351
ありがとうございます!
慣れてないと使いづらい…
0359名無しさん@お腹いっぱい。2008/07/09(水) 20:07:12
斜方投射の奇跡の式なんですが・・・
y=tan(r)*x-((g*x*x)/(2*v*v*cos(r)*cos(r))
とやったらマイナスのグラフが明らかに違う形になりました。
どこがおかしいのでしょうか?
0360名無しさん@お腹いっぱい。2008/07/25(金) 00:05:48
emacsで作ったkk.cの出力をaa.datにに保存するコマンド教えて下さい
あとこのaa.datをgnuplotにプロットする方法おしえてください
0361名無しさん@お腹いっぱい。2008/07/25(金) 02:01:10
> emacsで作ったkk.cの出力をaa.datにに保存するコマンド教えて下さい
質問の意味が分からないが、gnuplotと関係ないので、他で聞いてくれ

> あとこのaa.datをgnuplotにプロットする方法おしえてください
gnuplotを起動して plot "aa.dat" と打つ
詳細を手取り足取り教えるのは無理なので、
http://t16web.lanl.gov/Kawano/gnuplot/
などを参考にしてくれ
0362名無しさん@お腹いっぱい。2008/07/25(金) 09:20:52
ネタにしてはイマイチだがもしかしてリアル小学生か?
0363名無しさん@お腹いっぱい。2008/07/25(金) 23:16:54
素人の質問なんですが、
gnuplotって、ビデオカードの性能求めますか?
0364名無しさん@お腹いっぱい。2008/07/26(土) 00:32:56
夏休みの宿題は自分でやってこそ意味があるんだ
0365名無しさん@お腹いっぱい。2008/08/03(日) 19:39:01
gnuplotって10**10以上って認識しない?
0366名無しさん@お腹いっぱい。2008/08/04(月) 12:32:23
1e10 でもだめ?
0367名無しさん@お腹いっぱい。2008/08/10(日) 06:25:28
gnuplotでdatの画像ファイルを可視化したいのですが、
どなたか教えていただけませんでしょうか…。

三次元(x,y,明度)で書かれたファイルを平面上で
グレーの画像にしたいのです。

#ID X Y DATA FLAG
0 0 0 0.556 0
1 1 0 0.358 0
2 2 0 0.488 0
3 3 0 0.506 0
4 4 0 0.347 0
……

というdatファイルを読み込んで、
(x,y)座標にあるひとつのドットの明度が
"DATA"の値です。

ネットで検索して、
plot "ファイル名" with image
などといろいろ試したのですがどうしても分かりません。

お願いします。
0368名無しさん@お腹いっぱい。2008/08/11(月) 00:09:52
with imageって使ったことないけど

> splot "ファイル名" using 2:3:4 with image

とかじゃね?
0369名無しさん@お腹いっぱい。2008/08/11(月) 01:16:12
set pm3d map
set palette gray
splot x*y
0370名無しさん@お腹いっぱい。2008/08/12(火) 11:36:41
winの4.0.0で
起動時に初期ディレクトリを指定場所に変更する方法を教えてください
■ このスレッドは過去ログ倉庫に格納されています