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
0330名無しさん@お腹いっぱい。
2008/02/06(水) 10:52:32awkで加工するのが簡単じゃね?
0331名無しさん@お腹いっぱい。
2008/02/06(水) 11:08:360332329
2008/02/06(水) 18:50:55普通はそうですよねぇ…、ちょっと事情がありまして
出来れば 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:390334名無しさん@お腹いっぱい。
2008/02/07(木) 19:35:49それは大丈夫の筈
0335名無しさん@お腹いっぱい。
2008/02/14(木) 00:05:27どこかに置いてませんかね?
0336329
2008/02/14(木) 18:06:44using 1:2:(sprintf("%s+%s",strcol(3),strcol(4)))
で、行けそうな事が分かりました。
質問を見て(?)書いてくれたエキスパートの方、ありがとうございました。
大変に参考になりました!感謝です!
0337名無しさん@お腹いっぱい。
2008/03/06(木) 21:14:30やっぱり座標をあわせてlabelを置くしかないのでしょうか。
0338名無しさん@お腹いっぱい。
2008/03/08(土) 08:05:540339名無しさん@お腹いっぱい。
2008/03/08(土) 15:17:140340名無しさん@お腹いっぱい。
2008/03/08(土) 15:38:380341名無しさん@お腹いっぱい。
2008/03/19(水) 17:13:53元データが 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:25YYYY-MM という表記でグラフ化しています。
期間が長くなると、x軸のラベルが詰まって見難くなるのですが
文字が重ならないように間引く方法はありますか?
0343名無しさん@お腹いっぱい。
2008/05/11(日) 22:37:14ズームアウトするにはどうやるんでしょうか?
0344名無しさん@お腹いっぱい。
2008/05/11(日) 23:59:39>u `builtin-unzoom`
0345名無しさん@お腹いっぱい。
2008/05/12(月) 13:42:37ありがとう!
0346名無しさん@お腹いっぱい。
2008/05/24(土) 22:54:10普通にopenでは開くことが出来ないのですが
0347名無しさん@お腹いっぱい。
2008/05/24(土) 23:24:030348名無しさん@お腹いっぱい。
2008/05/26(月) 15:10:38上付き文字下付き文字を入力することが出来ません。
従ってgnuplotへの乗り換えを考えているのですが
これだと可能なのでしょうか?
0349名無しさん@お腹いっぱい。
2008/05/26(月) 15:22:410350名無しさん@お腹いっぱい。
2008/06/15(日) 16:07:22=x (5≦x≦10)
=1 (x>10)
のようなグラフを描きたいのですが、どんなコマンドを入れればよいのでしょうか。
0351名無しさん@お腹いっぱい。
2008/06/15(日) 16:18:25だけど
plot x<5?0:x<=10?x/5-1:1
だと思う
意味がわからなかったら三項演算子でググれ
0352名無しさん@お腹いっぱい。
2008/06/17(火) 23:33:18G 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:370354名無しさん@お腹いっぱい。
2008/06/18(水) 19:44:550355名無しさん@お腹いっぱい。
2008/06/18(水) 22:23:140356名無しさん@お腹いっぱい。
2008/06/18(水) 23:03:060357名無しさん@お腹いっぱい。
2008/06/21(土) 18:33:230359名無しさん@お腹いっぱい。
2008/07/09(水) 20:07:12y=tan(r)*x-((g*x*x)/(2*v*v*cos(r)*cos(r))
とやったらマイナスのグラフが明らかに違う形になりました。
どこがおかしいのでしょうか?
0360名無しさん@お腹いっぱい。
2008/07/25(金) 00:05:48あとこのaa.datをgnuplotにプロットする方法おしえてください
0361名無しさん@お腹いっぱい。
2008/07/25(金) 02:01:10質問の意味が分からないが、gnuplotと関係ないので、他で聞いてくれ
> あとこのaa.datをgnuplotにプロットする方法おしえてください
gnuplotを起動して plot "aa.dat" と打つ
詳細を手取り足取り教えるのは無理なので、
http://t16web.lanl.gov/Kawano/gnuplot/
などを参考にしてくれ
0362名無しさん@お腹いっぱい。
2008/07/25(金) 09:20:520363名無しさん@お腹いっぱい。
2008/07/25(金) 23:16:54gnuplotって、ビデオカードの性能求めますか?
0364名無しさん@お腹いっぱい。
2008/07/26(土) 00:32:560365名無しさん@お腹いっぱい。
2008/08/03(日) 19:39:010366名無しさん@お腹いっぱい。
2008/08/04(月) 12:32:230367名無しさん@お腹いっぱい。
2008/08/10(日) 06:25:28どなたか教えていただけませんでしょうか…。
三次元(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> splot "ファイル名" using 2:3:4 with image
とかじゃね?
0369名無しさん@お腹いっぱい。
2008/08/11(月) 01:16:12set palette gray
splot x*y
0370名無しさん@お腹いっぱい。
2008/08/12(火) 11:36:41起動時に初期ディレクトリを指定場所に変更する方法を教えてください
0371名無しさん@お腹いっぱい。
2008/08/13(水) 02:00:35ショートカットのプロパティで作業フォルダを変更する
0372名無しさん@お腹いっぱい。
2008/08/20(水) 15:45:061列目をX軸 2列目をY軸の2次元プロットする際に、
例えば、0〜5000行目、5001〜10000行目という風に行範囲を指定して
プロットさせる方法を教えてください。
0373名無しさん@お腹いっぱい。
2008/08/20(水) 16:30:010〜5000行目: head -5000
5001〜10000行目: head -10000 | tail -5000
もしくは awk '{if (NR<10000 && NR >5000) print}' で抜き出せるので
plot '< awk ...' みたいにする
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リクームプロット
ジースプロット
バータプロット
グルドプロット
■ このスレッドは過去ログ倉庫に格納されています