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
0127名無しさん@お腹いっぱい。
2007/03/29(木) 22:33:41shellが使えるんだったら、普通に for でループを組んで
HereDocument で gnuplot 動かせば、gif animation とか
普通に出来るよ。
0128124
2007/03/30(金) 05:37:56shellって、UNIXのシェルスクリプトのことですか?私が聞きたいのは[Windows版]gnuplotでのことです...
あと、HereDocumentとは何でしょうか?検索すると、Rubbyではこのようなタグを使うようですが、
>>127さんの意味していることがよく分かりません。
0129名無しさん@お腹いっぱい。
2007/03/30(金) 08:57:011.Windowsでもunixのシェルスクリプトが使える
ということを教えてやろう。
0130124
2007/03/30(金) 17:12:24情報を小出しにしないで、ズバッと書いてください!!どうやってスクリプトを呼び出せばいいのですか?
あとLinuxでは↓のように書いているのですが、Winでもgnuplot<<EOFのような書き方でgnuplotが使えるのですか?
#!/bin/sh
#echo $1
varX=`awk -F'( = |,)' '/max_X/{print $2}' init.nml`
varY=`awk -F'( = |,)' '/max_Y/{print $2}' init.nml`
for i in $1/*.dat
do
var1=${i:8}
var2=${var1%.dat}
gnuplot << EOF
set terminal png
set output "$1img/${var2}.png"
set xlabel "X[m]"
set ylabel "Y[m]"
set zlabel "Pressure[?]"
set xrange [-0.10e0:${varX}]
set yrange [-0.10e0:${varY}]
set zrange [-0.10e0:2.10e0]
set title "Karman Vortex Street"
splot "$1/${var2}.dat" using 1:2:3 with lines
EOF
convert $1img/${var2}.png $1img/${var2}.gif
rm $1img/${var2}.png -f
echo "["$i"] has drown."
done
0131名無しさん@お腹いっぱい。
2007/03/30(金) 17:25:020132130
2007/03/30(金) 17:30:170133124
2007/03/30(金) 17:34:26gnuplotの連続描画するために大学のPCにcygwin入れてもらおうかな?
→Winでもできるだろ→どうやるの?→回答者失踪→ここのスレ>>124
のながれでした。
うちの大学のPCはWinXPで且つcygwin使えないので、Winでgnuplotの連続描画する方法を模索しています。
自分も情報を小出しにしていました。
||
∧||∧
( / ⌒ヽ
| | |
∪ / ノ
| ||
∪∪
;
-━━-
0134124
2007/03/30(金) 17:35:020135名無しさん@お腹いっぱい。
2007/03/30(金) 17:43:270136124
2007/03/30(金) 17:47:19どのように書けばいいのですか?
gnuplotの呼び出しと、そこへ設定を渡す方法だけでも教えてください
0137124
2007/03/30(金) 18:00:03>>135さん他ありがとうございました!
0138名無しさん@お腹いっぱい。
2007/03/30(金) 21:16:040139名無しさん@お腹いっぱい。
2007/03/30(金) 23:19:020140124
2007/03/31(土) 04:33:06>>130と同じ機能だけど、書き方がちょっと違う。
Dim objFS
Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
If objFS.FolderExists("ResultV") Then
Dim objFolder
Set objFolder = objFS.GetFolder("ResultV")
objFS.CreateFolder("ResultVimg")
'Start GNUPLOT
Set objShell = WScript.CreateObject("WScript.Shell")
Set objExec = objShell.Exec("C:\Program Files\gnuplot\bin\wgnuplot_pipes.exe")
strID = objExec.ProcessID
Do While objShell.AppActivate(strID)
WScript.Sleep 500
Loop
0141124
2007/03/31(土) 04:33:57Dim i
i = 0
For Each objFiles In objFolder.Files
i = i+1
Dim strFName
strFName = objFiles.Name
If i=1 Then
Dim objText
Set objText = objFS.CreateTextFile("_gnuplot-vel.plt", True)
'********** [gnuplot-vel_temp.plt] file statements **********
objText.WriteLine( "set terminal png" )
objText.WriteLine( "set xlabel 'X[m]'" )
objText.WriteLine( "set ylabel 'Y[m]'" )
objText.WriteLine( "set xrange [-0.10e0:2.1e0]" )
objText.WriteLine( "set yrange [-0.10e0:2.1e0]" )
objText.WriteLine( "set title 'Karman Vortex Street'" )
End If
objText.WriteLine( "set output " & "'ResultVimg/" & objFS.GetBaseName(strFName) & ".png'" )
objText.WriteLine( "plot '" & "ResultV/" & objFS.GetFileName(strFName) & "' with vector" )
Next
0142124
2007/03/31(土) 04:34:41'********** Gnuplot statement **********
objShell.AppActivate(strID)
objShell.SendKeys "load '_gnuplot-vel.plt'{ENTER}"
WScript.Sleep 700
'Dim objDel
'Set objDel = objFS.GetFile("_gnuplot-vel.plt")
'objDel.Delete
Else
MsgBox("ResultV" & " Could not Found.")
End If
0143138
2007/04/01(日) 00:59:06ありがとー
>>139
ここが UNIX 板だってこと忘れてましたスマン。
Windows だと gnuplot 動かすためだけに cygwin 入れるのもだるいし、
DJGPP の bash を使うにも fileutils とかも無いと不便だしで、
結局 WSH になるんですかね。
0144名無しさん@お腹いっぱい。
2007/04/01(日) 16:16:40データ数増えるとAccessとかになるかもしれんけど。
すれ違いゴメン。
0145名無しさん@お腹いっぱい。
2007/04/01(日) 19:48:040146名無しさん@お腹いっぱい。
2007/04/01(日) 20:09:01物理の分野で、計測値を全部 Access に
入れてる人がいたら挙手!
0147名無しさん@お腹いっぱい。
2007/04/01(日) 21:40:050148名無しさん@お腹いっぱい。
2007/04/01(日) 22:13:320149124
2007/04/02(月) 00:22:360150124
2007/04/02(月) 00:41:24M$のソフトは規模がでかくなると使いづらいと思う。
学生実験のデータはExcelにいれて使ってるが、数値計算ではデータが膨大でExcelでは無理
もれが>>140-142で書いたVBScriptも、シェルスクリプトでは>>130の様に簡潔、簡単に書けるし
0151144
2007/04/02(月) 09:44:21ウチは水質解析やってるけどFortranからは固定長テキストで出力して
グラフはVBで専用PG作ってるな。
0152名無しさん@お腹いっぱい。
2007/05/22(火) 08:11:390153名無しさん@お腹いっぱい。
2007/05/22(火) 09:39:010154名無しさん@お腹いっぱい。
2007/05/22(火) 21:39:330155名無しさん@お腹いっぱい。
2007/05/23(水) 11:09:37ハートを描く関数を教えてください
0156名無しさん@お腹いっぱい。
2007/05/23(水) 11:39:42[.Xresources]
gnuplot*background: black
以外に(Xを立ち上げ直すのが面倒でこれすらやってないが) 方法ない?
0157名無しさん@お腹いっぱい。
2007/05/23(水) 13:03:250158名無しさん@お腹いっぱい。
2007/05/23(水) 13:11:21つ xrdb -merge
0160名無しさん@お腹いっぱい。
2007/06/03(日) 10:27:31カージオイドでぐぐれ。
0161名無しさん@お腹いっぱい。
2007/06/04(月) 17:17:280162名無しさん@お腹いっぱい。
2007/06/08(金) 03:02:480163名無しさん@お腹いっぱい。
2007/06/11(月) 21:12:28gnuplotで
1 1 -1
1 2 1
1 3 1
1 4 1
2 1 1
2 2 -1
2 3 -1
2 4 1
・
・
4 3 1
4 4 -1
のようなデータ(行列のそれぞれの成分が-1か1)があって、これを行と列について二次元プロットして、
行列の成分の値がー1のときは赤の点で、1の時は青の点で。にしたいのですがどうやったらできますか?
わかる方いらっしゃったら教えていただきたいです。よろしくお願いします。
0164名無しさん@お腹いっぱい。
2007/06/11(月) 22:01:19"< cat hoge.dat | awk '{if ($3 == -1) print $1, $2}'" w points pt 5
pt の 数字は適当に変えて好みなのを探すこと
0166名無しさん@お腹いっぱい。
2007/06/12(火) 02:27:52ググってみてもそれらしい解説サイトがないのですが…
0167名無しさん@お腹いっぱい。
2007/06/12(火) 08:17:29何かいい方法はないですか?
0168名無しさん@お腹いっぱい。
2007/06/12(火) 08:23:170169名無しさん@お腹いっぱい。
2007/06/12(火) 11:02:15gnuplot の場合
* そもそも pt の数字とでてくる記号・色の組合わせは出力ドライバによる
* "ポイントの種類" 属性はあっても "ポイントの色" 属性はなかったはず...
ポイントの種類を変えてごまかしてるけど
0170名無しさん@お腹いっぱい。
2007/06/13(水) 03:28:38epsで出力してepsファイルの色の定義の部分を書き換えるってのは結構やるかな
/LT0.../LT8で始まる行がpt1...pt9の色の定義に対応している
各行の最後の3数字がrgbの値になっているのでそこを変える
0171名無しさん@お腹いっぱい。
2007/06/13(水) 07:59:16ありがとうございました<m(__)m>
0172名無しさん@お腹いっぱい。
2007/06/13(水) 22:39:34のグラフを描くにはどうすればいいですか?
0173172
2007/06/14(木) 02:28:580174名無しさん@お腹いっぱい。
2007/06/17(日) 04:52:200175名無しさん@お腹いっぱい。
2007/06/26(火) 21:02:29軌跡を書くにはどうしたらいいんでしょう?
0176名無しさん@お腹いっぱい。
2007/06/26(火) 22:19:510177名無しさん@お腹いっぱい。
2007/06/26(火) 23:21:49plot t**2, t
0178名無しさん@お腹いっぱい。
2007/06/26(火) 23:32:08splot x**2+x*y+y**2
0179名無しさん@お腹いっぱい。
2007/06/28(木) 05:17:58今までs
0180名無しさん@お腹いっぱい。
2007/07/02(月) 04:38:29これで plot i*3 みたいな表現が使えると思ったのですが・・・
表示されないです。
all points y value undefined! と言われます。
yが定義されてないから?と思って、適当にあたいを代入してみますが、うまくいきません。
HPも読んでみたのですが、解決できなくて、ここに来ました。
愚かな質問だと思いますが、どうぞ助けてください。
0181名無しさん@お腹いっぱい。
2007/07/02(月) 14:37:00などと実数化してみれば?
0182名無しさん@お腹いっぱい。
2007/07/03(火) 17:46:400183名無しさん@お腹いっぱい。
2007/07/24(火) 11:18:390184名無しさん@お腹いっぱい。
2007/07/24(火) 13:36:27set parametric
splot cos (u), sin (u), 1
0186名無しさん@お腹いっぱい。
2007/07/28(土) 19:58:15set zrange[0:40];
splot ....;
とかって書いて3列のデータから2次元の絵を作りたいのですが,
zの最大値の方が言うこと聞きません.
グラフたくさん書いて見比べたいんだけど,コンターの範囲が揃わなくて困ってます.
範囲の指定方法間違ってますか?
0187名無しさん@そうだ選挙に行こう
2007/07/29(日) 02:38:44状況がいまいちよくわからないが
set cbrange[??:??]
あたりとか?
0188186
2007/07/29(日) 16:13:26スマソ.ちょっと舌足らずだった.
例えばz=[0:40]までのレンジでxy平面に色付けするとき,
set zrange[0:40]としてもレンジが勝手に0〜35になってしまったり
するデータがあるんだ.ちなみに,データでzを読むときは
using 1:2:($3 < min ? min : $3)
みたいに書いている.( < cbrange[??:??] を知らなかった人)
0189186
2007/07/31(火) 17:05:43仕様なんだろうと思うけど,zrangeで表示領域を指定すると
データがzmaxより小さい場合は勝手に表示領域を狭めてしまうようです.
(v4.2)
0190名無しさん@お腹いっぱい。
2007/08/02(木) 01:11:29を描きたいんだけど errorbars を使うしかない?
0191名無しさん@お腹いっぱい。
2007/08/02(木) 01:37:44.pltが一般的なの?
0192名無しさん@お腹いっぱい。
2007/08/02(木) 10:05:10Windowsじゃあるまいし。
0193名無しさん@お腹いっぱい。
2007/08/02(木) 18:43:47だからってjpgとかはないだろう
物事にはデファクトってもんがあるだろ
0194名無しさん@お腹いっぱい。
2007/08/03(金) 00:14:40一行目に mode 書いてもいいんだが。
0195名無しさん@お腹いっぱい。
2007/08/04(土) 21:40:58文字を90度回転させることはできないでしょうか?
0196tm
2007/08/06(月) 05:03:59私なら,全部awkでやります。Here documentなくても,
ちまちまprintやprintfでguplotの命令をかいていけばいいですから。
また,たまにpgnuplotをawkで触るのもやります。
winにもgawkがあるし,awkでがんばれば,たいていのことはできると思うのですが。
(wshは強力だけど,Windows onlyのコードを使います)。
Unixユーザー様の書いた強力なコードを使うときは,迷わずcygwin。
cygwinってそのためにあるのでは?
また,cygwinいやならmsysのshをいれればすこし書き直しが要りますが,
あまり手がかからずunixもの移植できます。
msysなら,ファイルをコピーするだけでインストールできるので,
usbあたりにでもいれとけばいいのでは。
私のusbにはいれてあります。
0197名無しさん@お腹いっぱい。
2007/08/07(火) 00:28:550198a ◆6kUU.aIoeg
2007/08/07(火) 01:13:320199tm
2007/08/07(火) 05:03:39質問するときの常識でしょ?
0200名無しさん@お腹いっぱい。
2007/08/07(火) 10:08:41ニホンゴ文字化けして読めないンですけど
0201名無しさん@お腹いっぱい。
2007/08/20(月) 18:38:08見出しをグリッドとグリッドの間(12:00あたり)に
表示したいんだけど、どうしたらいいんだろう
0202名無しさん@お腹いっぱい。
2007/08/28(火) 01:45:560203名無しさん@お腹いっぱい。
2007/08/28(火) 12:00:170204名無しさん@お腹いっぱい。
2007/09/01(土) 21:46:122007/8/28 10 100
2007/8/29 20 200
2007/8/30 30 300
データ数が多くなるとx軸の日付が重なって見えずらくなるのですが、
日付を3日で1つ表示する等の変更はどうすればよいのでしょうか?
0205名無しさん@お腹いっぱい。
2007/09/01(土) 21:51:010206名無しさん@お腹いっぱい。
2007/09/01(土) 21:54:54できますたあああああああああああああ
ありがとうございます!
0207名無しさん@お腹いっぱい。
2007/09/03(月) 22:08:200208名無しさん@お腹いっぱい。
2007/09/07(金) 18:58:49>>42
unset mouse
で消えるんでは
0209名無しさん@お腹いっぱい。
2007/09/22(土) 20:09:460210名無しさん@お腹いっぱい。
2007/09/28(金) 17:41:57ylabel が 90度回転せずに出力されてしまうのですが、
なぜなんでしょうか?
デフォルトのフォントでは ylabel が90度回転するので、
凡例以外はデフォルトフォントにして、
凡例だけのフォントを変更したいのですが、
どうすればいいでしょうか?
set terminal png medium font "/path/to/msgothic.ttc,10"
set output "test.png"
set xlabel "X"
set ylabel "Y"
plot sin(x) title "さいん"
0211名無しさん@お腹いっぱい。
2007/09/29(土) 22:09:29再度,細かいデータ点を取り出したいと考えてます.
具体的に,y軸を基点として,y軸のある点でのx軸の正確な値を
取り出したい場合,どうしたらよいでしょうか?
0212名無しさん@お腹いっぱい。
2007/09/30(日) 09:43:21gnuplot となんの関係が?
0213211
2007/09/30(日) 14:01:41gnuplot 入門して間もないです.
出力したグラフの左下に,ポインティング座標位置が出る.
ということは,y軸のある値から,それに対するx軸の値が出せるのではないか
と考えてます.
gnuplot がグラフを出力するだけのソフトであるならば,
意味不明な質問になると思いますが・・・
0214名無しさん@お腹いっぱい。
2007/09/30(日) 16:59:170215名無しさん@お腹いっぱい。
2007/10/01(月) 13:29:54つ g3data
>>210 の方も誰かお願いします><
0217215
2007/10/01(月) 17:00:05これからもがんがってくださいまし
0218名無しさん@お腹いっぱい。
2007/10/01(月) 18:15:490219名無しさん@お腹いっぱい。
2007/10/02(火) 08:20:36神がいる...
0220名無しさん@お腹いっぱい。
2007/10/02(火) 11:43:13凄!
Up主、馬鹿格好良すぎ!
0221名無しさん@お腹いっぱい。
2007/10/03(水) 02:05:15gnuplotを GNU と略すコメントに違和感...
0222名無しさん@お腹いっぱい。
2007/10/04(木) 09:53:46裡門頂肘を裡門と略されるとムズムズするのと同じだな
0223名無しさん@お腹いっぱい。
2007/10/05(金) 00:56:442点, P, Qを線分で結びたいのですが、うまくいかず困っています。
replot t, f(t)
とすれば、中心同士を直線で結べるのですが、線分で結びたいのです。
replot [Px, Qx] t, f(t)
等としてみても、replot自体が無効になってしまっているようでした。
0224名無しさん@お腹いっぱい。
2007/10/05(金) 17:04:400225名無しさん@お腹いっぱい。
2007/10/07(日) 23:09:37保存の項目を選択したときにver4.0まではその項目を選択したときに、
以前に最後に開いたディレクトリを選択してくれたのですが、
最近ではgnuplotをインストールしたディレクトリを常に開いてしまいます。
これを以前の挙動に戻すにはどのようにしたらよいでしょうか。よろしくお願いいたします。
0226名無しさん@お腹いっぱい。
2007/10/08(月) 21:16:250227名無しさん@お腹いっぱい。
2007/10/10(水) 20:54:08空白で区切られたデータでなく、
CSV形式のデータを読み込んで書かせるには
どういう方法があるのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています