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
0374名無しさん@お腹いっぱい。
2008/08/20(水) 18:14:49もう少し教えてください。
ファイル hoge に
num=num+1
plot " < awk '{if(NR<(num*100) && NR>((num+1)*100))print}' aheahe"
if(num<100) reread
って書いて
num=1
load 'hoge'
でアニメーションで表示したいんだけど
numをawkに渡せなくて困ってるんですが、方法をおしえてください
0375名無しさん@お腹いっぱい。
2008/08/20(水) 18:43:14plot " < awk '{if(NR<(num*100) && NR>((num+1)*100))print}' num=$num aheahe"
とか?
0376名無しさん@お腹いっぱい。
2008/08/21(木) 08:13:550377名無しさん@お腹いっぱい。
2008/08/21(木) 09:50:12plot " < awk '{if(NR<(num*100) && NR>((num+1)*100))print}' aheahe"
は
plot " < awk '{if(NR<(num*100) && NR>=((num+1)*100))print}' aheahe"
か
plot " < awk '{if(NR<=(num*100) && NR>((num+1)*100))print}' aheahe"
じゃなかろうか…
>373 がちょっと間違ってるのはオラのせいですが気づいてよ
0378名無しさん@お腹いっぱい。
2008/08/21(木) 19:52:41OSは何?gawk入れるとか?
0379名無しさん@お腹いっぱい。
2008/08/22(金) 10:23:40LINUXです
0380名無しさん@お腹いっぱい。
2008/08/22(金) 20:37:51のawkでは、引数が渡せなくて、gawkやnawkを入れた
記憶があるような、ないような。
0381名無しさん@お腹いっぱい。
2008/08/22(金) 20:39:41するようなら、ソースをコンパイルしてみては?
0382名無しさん@お腹いっぱい。
2008/08/22(金) 22:09:02$ awk -V
awk version 20040207
$ export a="123"
$ echo "" | awk '{ print a }' a=$a
123
$ echo "" | awk -v a=$a '{ print a }'
123
0383名無しさん@お腹いっぱい。
2008/08/23(土) 00:42:070384名無しさん@お腹いっぱい。
2008/08/23(土) 01:22:230385名無しさん@お腹いっぱい。
2008/08/24(日) 21:49:44gnuplotで出力したepsファイルを、
ghostscriptで見たりtexに貼り付けてdvi出力してdvioutで見ると、
何本も線を引いたはずのグラフなのに一本しかでなかったり、ずれて二重表示になったりします。
ですがdvioutからpdfを出力したり、印刷したりするとまともに直っているので
表示だけがおかしいみたいです。
gnuplotのepsはghostscript等で表示できないのですか?
0386名無しさん@お腹いっぱい。
2008/08/25(月) 00:15:54できるよ
0387名無しさん@お腹いっぱい。
2008/08/26(火) 08:03:14どうやるんです?
0388名無しさん@お腹いっぱい。
2008/09/02(火) 20:12:17gnuplot→eps→tex→dvipdf→pdf
と変換しているのですが、PDFのファイルサイズを
極力小さくしたいです。epsのサイズが支配的なので
set term postscript のオプションとかで
何とかならないでしょうか?
ちなみに、dvipdfでそれなりに圧縮はかかっているようです。
0389388だけど
2008/09/02(火) 20:16:48PDFは、小さめのグラフを沢山並べて、
拡大して細かいところまで見たいので、
PNGとかGIFはあんまり考えてないです。
0390名無しさん@お腹いっぱい。
2008/09/07(日) 00:37:42そういうことはできますか? できるのなら方法を教えてください。
0391名無しさん@お腹いっぱい。
2008/09/07(日) 02:26:36acrobatでpdfを開き、最適化保存するのがいいんじゃない?
タダソフトは難しそう
0392名無しさん@お腹いっぱい。
2008/09/07(日) 02:51:16(x,y,z,f(x,y,z))を表示するのですか?
x,y,z は独立変数ですか?
GNUPLOT でなくても、4次元プロットは無理だと思いますが。
それとも、x,y,z の間には何か関係式があって、
x,y,z 3次元上で、2次元曲面とか曲線、点で表されていて、
その面(線、点)場に色付けしたいということでしょうか。
私が何か勘違いしていたらごめんなさい。
0393名無しさん@お腹いっぱい。
2008/09/07(日) 02:54:04(誤)面(線、点)場に色付け
(正)面(線、点)上に色付け
0394名無しさん@お腹いっぱい。
2008/09/07(日) 15:45:19もっと詳しく書くべきでしたね。
x,y,zは独立変数で、点P(x,y,z)に、値f(x,y,z)を色で示したいのです。
例えばfは[0,9]の任意の値をとり、これも例えばfが0なら黒、1なら灰…9なら
赤というように色を点Pにmappingできないかということです。
温度やら電界強度やらを示すために需要があると思うのですが。
gnuplotでできなくても他に方法があれば教えて下さい。
0395名無しさん@お腹いっぱい。
2008/09/07(日) 18:03:170396名無しさん@お腹いっぱい。
2008/09/07(日) 19:33:40ああ、3次元の点に色付けを考えているのですね。
やや大きめのポイント●をプロットして、
f(x,y,z)の値別に色分けということですか…
私でしたら、あまりスマートな方法ではないかもしれませんが、
まず、GNUPLOT を使う前に、スクリプトなどで、
f(x,y,z)の値別に、(x,y,z) の三次元データファイルを分割します。
file0.dat ( 0 <= f(x,y,z) < 1 )
file1.dat ( 1 <= f(x,y,z) < 2 )
...(略)
file9.dat ( 9 <= f(x,y,z) < 10 )
それで、GNUPLOT からはファイルごとにポイントの色指定をします。
set pointsize 2
splot "file0.dat" with points linetype 1 pointtype 7, \
"file1.dat" with points linetype 2 pointtype 7, \
...(略)
"file9.dat" with points linetype 9 pointtype 7
こんな感じでしょうか。
X画面表示とPS などで出力するときは、
表示のポイントの形などが違っていたりするので、注意して下さい。
0397名無しさん@お腹いっぱい。
2008/09/07(日) 19:59:25vector スタイルでかけませんか?
0399名無しさん@お腹いっぱい。
2008/09/08(月) 00:24:24set term pdfで吐かせたpdfの図を使うという手もあるな
諸々面倒だからあまりお勧めしないが
0400名無しさん@お腹いっぱい。
2008/09/08(月) 02:15:35てか君の場合、単にプロットしてるデータの量が多すぎるんでしょ。
それをベクターグラフィックのフォーマットで圧縮しようったって無理。
データ点そのものを少なくするか、ビットマップのフォーマットに変換するしかないでしょ。
0401398だけど
2008/09/08(月) 22:42:19ある意味そのとおり。
拡大して細かいところまで見るので、
データを間引くわけにはいかないし、
同じ理由でビットマップも厳しいかなと思ってます。
(ちゃんと比較してないけど)
圧縮アルゴリズムが選択できたりしないかななどと
思ってたんですが...
>>399
set term pdfってあったっけかな...
あったら試してみます。
0402名無しさん@お腹いっぱい。
2008/09/08(月) 23:11:12gnuplotのソースを改造してみたら?
postscript/pdfを掃き出す関数があるはずから、そこを圧縮版に変更するんだ
常識的に考えて、こんなフリーソフトが圧縮出力に対応しているとは思えない
0403名無しさん@お腹いっぱい。
2008/09/12(金) 16:53:44需要ありそうだから、既に誰かがやっているかもしれませんが、
検索にひっかかりません。
ということは、一筋縄ではいかないのでしょうね。
0404398だけど
2008/09/17(水) 19:16:460405352
2008/09/18(木) 17:11:07「gnuplot - 」でスタートアップメッセージ省略できました。
0406名無しさん@お腹いっぱい。
2008/09/19(金) 22:03:110407名無しさん@お腹いっぱい。
2008/09/24(水) 21:13:40ちなみにオレはわかんね。
0408名無しさん@お腹いっぱい。
2008/10/01(水) 23:08:230409名無しさん@お腹いっぱい。
2008/10/02(木) 17:56:370410名無しさん@お腹いっぱい。
2008/10/02(木) 22:39:250411名無しさん@お腹いっぱい。
2008/10/02(木) 23:25:09一次元で一個しかないやつとかなら普通のプロットでもしてください
0412名無しさん@お腹いっぱい。
2008/10/03(金) 23:11:24たとえば、水素原子の2p軌道とか、どうやってやるんですか?
0413名無しさん@お腹いっぱい。
2008/10/03(金) 23:28:46このあたり読めばできるようになるのでは?そのままぶち込めばいけるだろ
0414名無しさん@お腹いっぱい。
2008/10/05(日) 22:11:32そろそろ寿命かな。
0415名無しさん@お腹いっぱい。
2008/10/05(日) 22:58:26いまさらそんな理由かよw
0416名無しさん@お腹いっぱい。
2008/10/05(日) 23:14:390417名無しさん@お腹いっぱい。
2008/10/06(月) 01:43:06ないよなぁ。SやRはもっと癖があるし、Octaveも然り。
0418名無しさん@お腹いっぱい。
2008/10/06(月) 01:45:174.2 か 4.3 をターゲットとして、
0419名無しさん@お腹いっぱい。
2008/10/06(月) 01:58:130420名無しさん@お腹いっぱい。
2008/10/08(水) 23:18:230421名無し
2008/10/09(木) 02:02:59そのときの動く様子をグラフィック表示したいと考えています。
(自作のプログラムでは球同士が重ならないように条件を設定している。また周期境界条件によってセルから玉がはみ出すことも考えられる。)
gnuplotでs回分の玉の移動をグラフィック表示できますか?もし可能ならばその方法について教えてください。
よろしくお願いします。
※自作のプログラム(Fortran77で記述)上で設定した球に関するパラメータ
・重心の位置(x,y,z座標で表現。必ず0≦x≦L,0≦y≦L,0≦z≦Lを満たすとする。)
・球の直径(m)
・セルの長さ(L)
0422名無し
2008/10/09(木) 02:03:41そのときの動く様子をグラフィック表示したいと考えています。
(自作のプログラムでは球同士が重ならないように条件を設定している。また周期境界条件によってセルから玉がはみ出すことも考えられる。)
gnuplotでs回分の玉の移動をグラフィック表示できますか?もし可能ならばその方法について教えてください。
よろしくお願いします。
※自作のプログラム(Fortran77で記述)上で設定した球に関するパラメータ
・重心の位置(x,y,z座標で表現。必ず0≦x≦L,0≦y≦L,0≦z≦Lを満たすとする。)
・球の直径(m)
・セルの長さ(L)
0423名無しさん@お腹いっぱい。
2008/10/09(木) 02:39:01単体では無理じゃないかなぁ
自作のプログラムとプロセス間通信するか(命令投げるだけだけでいけるからかなり簡単だけど・・)、
gnuplotのスクリプトファイルをフレーム別にいっぱい用意してシェルスクリプトか何かで順番に実行してくとか
0424名無しさん@お腹いっぱい
2008/10/09(木) 04:24:32例えば、wgnuplot.exe -path "hoge\\hoge" のようにすると作業ディレクトリがhoge\hogeで立ち上がるという動作をさせたいのですが・・・
0425名無しさん@お腹いっぱい。
2008/10/09(木) 16:20:12アニメ自体は時間毎の絵を後から繋げばいいけど、
そもそもgnuplotでは沢山の球を書くのがめんどい。
他の可視化ソフト探すか、OpenGL叩くかした方がいいよ。
0426名無しさん@お腹いっぱい。
2008/10/14(火) 11:22:32訂正してあげた方がいいのかなぁ
0427名無しさん@お腹いっぱい。
2008/10/14(火) 13:07:430428名無しさん@お腹いっぱい。
2008/10/14(火) 23:37:030429名無しさん@お腹いっぱい。
2008/10/14(火) 23:51:28リクームプロット
ジースプロット
バータプロット
グルドプロット
0430名無しさん@お腹いっぱい。
2008/10/15(水) 23:45:380431名無しさん@お腹いっぱい。
2008/10/16(木) 00:12:320432名無しさん@お腹いっぱい。
2008/10/17(金) 01:42:10「にゅーぷろっと」なんだろうけど、相手に通じない。
「ぐにゅぷろっと」がうちの研究室じゃ一般的だな。
GNOME は「ぐのーむ」
GIMP は「ぎんぷ」?「じんぷ」?
まぎらわしい。
が、「ぎにゅー」は新種だ。
0433名無しさん@お腹いっぱい。
2008/10/17(金) 06:34:520434名無しさん@お腹いっぱい。
2008/10/17(金) 22:26:030435名無しさん@お腹いっぱい。
2008/10/17(金) 22:49:490436名無し
2008/10/18(土) 21:49:48球の中心の座標は一辺10のセル内(0≦x≦10,0≦y≦10,0≦z≦10)に存在するとします。
球の中心の座標はバイナリファイル「zahyou.plt」にかかれているとします。
<zahyou.plt>
8.999 3.888 1.999
2.666 3.488 7.999 @
2.333 4.999 4.555
1.223 2.333 4.555
2.556 9.008 5.666 A
2.334 6.904 2.444
3.223 2.243 4.105
3.556 6.345 5.298 B
7.334 8.904 9.444
・
・
・
@、A、Bは3つの球の中心の座標です。
@から順にs秒毎にデータをgnuplotに読みこませて球を表示させて3つの球が動く様子を観察しよう
と考えています。
(s秒後には@のみ、2s秒後にはAのみを読み込む)
しかしgnuplotの使い方が未熟であるためその方法がいまひとつわかりません。
もしよければどなたかアドバイスを頂けませんか?
0437名無しさん@お腹いっぱい。
2008/10/18(土) 22:08:460438名無し
2008/10/19(日) 02:30:15データを読み込んでグラフィック表示する方法としてgnuplotを用いたのは、
グラフィック表示に関する専門知識を勉強する時間をあまり必要としない
一番簡単な方法だと考えたからです。
グラフィック表示させることに関してあまり時間はかけられないので。
gnuplotを用いることに特にこだわりはないです。
他に何かいい方法があればこしたことはないですが・・・。
0439名無しさん@お腹いっぱい。
2008/10/19(日) 02:47:50他の言語からgnuplotにプロセス通信したほうがいいんじゃないかと
少なくともpythonとcにはそのためのライブラリがつくられてることだし
やることはgnuplotの文書くのと変わらんし
sleep使うようになるだけで
0440名無しさん@お腹いっぱい。
2008/10/19(日) 10:35:380441名無しさん@お腹いっぱい。
2008/10/19(日) 13:42:40同意。
425さんも言っているけど、質点でなく、球体だからなぁ。
時刻毎の静止画かかせてアニメ化するほうが早いと思う。
グラフィックに時間をかけたくないということは、
レンダリングソフトなんかは使いたくないということですよね。
438さんの OS 環境がわからないけど、yaplot なんかいかが?
0442名無しさん@お腹いっぱい。
2008/10/19(日) 14:15:51gnuplot のアクロバティックな使い方を追求するより建設的じゃね?
0443名無しさん@お腹いっぱい。
2008/10/19(日) 19:38:56xrangeはautoscaleとして、その時に設定された範囲と同じようにyrangeを定めたいのですが、
やはりgnuplotでは難しいのでしょうか?
0444名無し
2008/10/20(月) 01:57:18OSはLinuxを使用しています。
0445船木康博
2008/10/20(月) 07:50:56秋ならぶどうかな?
Linux系は種類が多いでさぁ、
ペンギンもいるし、ユーザーには選択の自由があるでよぉ。
コンパクトで軽量な日本語ディストリビューションの、
Vine Linuxもいいかなぁ。
http://vinelinux.org/
サーバー向きか端末向きか、有償サポート付きか選べるしね。
SUNだって、無料なら使ってもいいらし。
NSPIXPは、FreeBSDを採用しているかもしれねぇし、
安定してきたLinuxカーネルかMicrosoftのWindowsかもしれねぇしさぁ。
2000年12月号掲載 よしだともこのルート訪問記
http://www.tomo.gr.jp/root/new/root69.html
0446名無しさん@お腹いっぱい。
2008/10/20(月) 08:57:19x,y ともに autoscale (自動)なんだけど
range は xrange == yrange になってほしい(y=x が対角線になってほしい)
って意味でしょうか?
だとするとgnuplot にはないかもね
自分だったら毎回 xrange,yrange セットしてます
0447名無しさん@お腹いっぱい。
2008/10/20(月) 20:24:41writebackとrestoreを使ったらできそうな気もする。
ttp://takeno.iee.niit.ac.jp/~shige/unix/gnuplot/gpinfo-2005.html
このへんが参考になるかも。
0448名無しさん@お腹いっぱい。
2008/10/21(火) 21:51:20以下のようなデータが書き込まれているバイナリのデータファイル
0.1 0.3 0.9
0.1 0.4 0.9
0.1 0.5 0.9
0.1 0.6 0.9
0.1 0.7 0.9
(実際にはスペースや改行が無いdoubleの数値の羅列)を読み込んでグラフを
出したいのですが,どうすれば良いでしょうか?
上のがテキストファイルだった場合は,例えば
> plot "datafile.txt" using 2
のようにすれば2列目をY軸に取ったグラフができると思うんですが,
それと同様のことがしたいです.
> plot "datafile.bin" binary format="%double"
に続けるコマンド:何個目までが1行,というような指定のしかたが分からなくて・・・
よろしくお願いします.
0449名無しさん@お腹いっぱい。
2008/11/06(木) 01:30:03以下のような内容をgnuplotに読み込ませてグラフを表示したところ、
2つあるグラフのどちらもX軸付近で途中で消失してしまっているのですが、
これを解消するためにはどうすればよいのでしょうか?
set xlabel"X-Axis"
set ylabel"Y-Axis"
set xrange[-300:20]
set yrange[0:200]
f(x) = (((19**(0.5)-1)**2)*10*(10-x))**0.5
g(x) = (15269.5449 - (x + 153.57)**2)**0.5
plot f(x) ,g(x)
初歩的な質問だとは思うのですが、よろしくお願いします。
0450名無しさん@お腹いっぱい。
2008/11/06(木) 01:52:51きちんと最後まで線を引きたいなら、set parametricで媒介変数表示する
0451名無しさん@お腹いっぱい。
2008/11/06(木) 11:22:28うまく描写できました。ほんとうに感謝です。
0452名無しさん@お腹いっぱい。
2008/11/07(金) 11:56:010453名無しさん@お腹いっぱい。
2008/11/07(金) 13:26:050454452
2008/11/07(金) 16:15:37ltで決めてるのは線種だけのようで、カラーなら実線オンリー、白黒なら実線・破線になるようです。
ttp://www.akita-nct.ac.jp/~yamamoto/comp/graph/gnuplot/gnuplot.html
これがgnuplot流儀なのだから、嫌なら自分でpostscriptをいじれ、ってことですかね?
あんまりpostscriptを手動でいじりたくはないのですが・・・
0455名無しさん@お腹いっぱい。
2008/11/08(土) 02:36:13それってsolidやdashedのterminal設定にしてるべ?
そしてうちのHelpにはlinetypeの所で
linestyleで種類/linecolorで色変えられるって書いてある
0456名無しさん@お腹いっぱい。
2008/11/08(土) 02:40:17× linestyleで種類
○ linetypeで種類
0457452
2008/11/08(土) 17:55:16terminalは以下に設定しています。
set term x11 enhanced font "helvetica,18"
linecolorは4.2からのようです。けっこう色々と進化してるんですね。
0458名無しさん@お腹いっぱい。
2008/11/10(月) 23:56:390459名無しさん@お腹いっぱい。
2008/11/13(木) 19:37:020460名無しさん@お腹いっぱい。
2008/11/13(木) 23:18:190461名無しさん@お腹いっぱい。
2008/11/14(金) 23:54:020462名無しさん@お腹いっぱい。
2008/11/15(土) 13:33:010463名無しさん@お腹いっぱい。
2008/11/15(土) 14:08:290464名無しさん@お腹いっぱい。
2008/11/17(月) 09:50:110465名無しさん@お腹いっぱい。
2008/11/18(火) 15:15:01そういうコマンドってありますか?
0466名無しさん@お腹いっぱい。
2008/11/18(火) 16:36:010467名無しさん@お腹いっぱい。
2008/11/21(金) 22:38:400468名無しさん@お腹いっぱい。
2008/11/22(土) 10:56:35ボルツマン定数 Kb 〜 10^-23すら扱えないので困っています
0469名無しさん@お腹いっぱい。
2008/11/23(日) 00:23:000470名無しさん@お腹いっぱい。
2008/11/23(日) 01:35:53じゃだめだけど
print 10.**-23
print 1e-23
ならいける
0471468
2008/11/23(日) 08:09:310472名無しさん@お腹いっぱい。
2008/11/23(日) 22:50:390473名無しさん@お腹いっぱい。
2008/12/01(月) 17:00:41xは60点、yは4点と縦長なグラフに出力したいのですが正方形のグラフになってしまいます
set sizeもz軸とxy平面しか変化しないので・・・ どうすればいいのか教えていただけないですか?
■ このスレッドは過去ログ倉庫に格納されています