トップページ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
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で
起動時に初期ディレクトリを指定場所に変更する方法を教えてください
0371名無しさん@お腹いっぱい。2008/08/13(水) 02:00:35
>>370
ショートカットのプロパティで作業フォルダを変更する
0372名無しさん@お腹いっぱい。2008/08/20(水) 15:45:06
2列で数万行あるデータファイルに対して
1列目をX軸 2列目をY軸の2次元プロットする際に、
例えば、0〜5000行目、5001〜10000行目という風に行範囲を指定して
プロットさせる方法を教えてください。
0373名無しさん@お腹いっぱい。2008/08/20(水) 16:30:01
unix 環境なら
0〜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:14
>>plot " < awk '{if(NR<(num*100) && NR>((num+1)*100))print}' aheahe"

plot " < awk '{if(NR<(num*100) && NR>((num+1)*100))print}' num=$num aheahe"

とか?
0376名無しさん@お腹いっぱい。2008/08/21(木) 08:13:55
エラーで無理でした…
0377名無しさん@お腹いっぱい。2008/08/21(木) 09:50:12
すごーくどうでもいいが
plot " < 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:41
>>376

OSは何?gawk入れるとか?
0379名無しさん@お腹いっぱい。2008/08/22(金) 10:23:40
GAWKならもしかして上のでいけるのか!
LINUXです
0380名無しさん@お腹いっぱい。2008/08/22(金) 20:37:51
かなり以前、solaris(sun OS だったかな ....)だったかに付属
のawkでは、引数が渡せなくて、gawkやnawkを入れた
記憶があるような、ないような。
0381名無しさん@お腹いっぱい。2008/08/22(金) 20:39:41
LINUXだと、awk自体、もともと、gawkかね?古い環境だったり
するようなら、ソースをコンパイルしてみては?
0382名無しさん@お腹いっぱい。2008/08/22(金) 22:09:02
MacOSX環境だけど、bash環境で、

$ 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:07
bash かどうかは関係なくね?
0384名無しさん@お腹いっぱい。2008/08/23(土) 01:22:23
蛇足かもしれんが、とりあえず、export a=... が使えるシェルってことで。
0385名無しさん@お腹いっぱい。2008/08/24(日) 21:49:44
windows環境なんですが
gnuplotで出力したepsファイルを、
ghostscriptで見たりtexに貼り付けてdvi出力してdvioutで見ると、
何本も線を引いたはずのグラフなのに一本しかでなかったり、ずれて二重表示になったりします。
ですがdvioutからpdfを出力したり、印刷したりするとまともに直っているので
表示だけがおかしいみたいです。

gnuplotのepsはghostscript等で表示できないのですか?
0386名無しさん@お腹いっぱい。2008/08/25(月) 00:15:54
>>385
できるよ
0387名無しさん@お腹いっぱい。2008/08/26(火) 08:03:14
>>386
どうやるんです?
0388名無しさん@お腹いっぱい。2008/09/02(火) 20:12:17
はなしそれてすみません。
gnuplot→eps→tex→dvipdf→pdf
と変換しているのですが、PDFのファイルサイズを
極力小さくしたいです。epsのサイズが支配的なので
set term postscript のオプションとかで
何とかならないでしょうか?
ちなみに、dvipdfでそれなりに圧縮はかかっているようです。
0389388だけど2008/09/02(火) 20:16:48
いい忘れました。
PDFは、小さめのグラフを沢山並べて、
拡大して細かいところまで見たいので、
PNGとかGIFはあんまり考えてないです。
0390名無しさん@お腹いっぱい。2008/09/07(日) 00:37:42
x-y-z座標上に、f(x,y,z)の値を色で表示したいんですが、gnuplotで
そういうことはできますか? できるのなら方法を教えてください。
0391名無しさん@お腹いっぱい。2008/09/07(日) 02:26:36
>>388
acrobatでpdfを開き、最適化保存するのがいいんじゃない?
タダソフトは難しそう
0392名無しさん@お腹いっぱい。2008/09/07(日) 02:51:16
>>390
(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
>>392
(誤)面(線、点)場に色付け
(正)面(線、点)上に色付け
0394名無しさん@お腹いっぱい。2008/09/07(日) 15:45:19
>>392
もっと詳しく書くべきでしたね。
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:17
>>394 いわゆるスカラー場ですよね。できればベクトル場も表示できると嬉しい・・・
0396名無しさん@お腹いっぱい。2008/09/07(日) 19:33:40
>>392
ああ、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:25
>>394
vector スタイルでかけませんか?
0398388だけど2008/09/07(日) 21:01:14
>>391

やっぱりそうか...。
とりあえず程々の圧縮で
我慢します。
0399名無しさん@お腹いっぱい。2008/09/08(月) 00:24:24
>>398
set term pdfで吐かせたpdfの図を使うという手もあるな
諸々面倒だからあまりお勧めしないが
0400名無しさん@お腹いっぱい。2008/09/08(月) 02:15:35
>>398
てか君の場合、単にプロットしてるデータの量が多すぎるんでしょ。
それをベクターグラフィックのフォーマットで圧縮しようったって無理。
データ点そのものを少なくするか、ビットマップのフォーマットに変換するしかないでしょ。
0401398だけど2008/09/08(月) 22:42:19
>>400
ある意味そのとおり。
拡大して細かいところまで見るので、
データを間引くわけにはいかないし、
同じ理由でビットマップも厳しいかなと思ってます。
(ちゃんと比較してないけど)
圧縮アルゴリズムが選択できたりしないかななどと
思ってたんですが...

>>399
set term pdfってあったっけかな...
あったら試してみます。

0402名無しさん@お腹いっぱい。2008/09/08(月) 23:11:12
>>401
gnuplotのソースを改造してみたら?
postscript/pdfを掃き出す関数があるはずから、そこを圧縮版に変更するんだ

常識的に考えて、こんなフリーソフトが圧縮出力に対応しているとは思えない
0403名無しさん@お腹いっぱい。2008/09/12(金) 16:53:44
398さんではありませんが、技能があったら挑戦してみたいですね。
需要ありそうだから、既に誰かがやっているかもしれませんが、
検索にひっかかりません。
ということは、一筋縄ではいかないのでしょうね。
0404398だけど2008/09/17(水) 19:16:46
そこまでスキルないです...。
04053522008/09/18(木) 17:11:07
今更ながら自己解決

「gnuplot - 」でスタートアップメッセージ省略できました。
0406名無しさん@お腹いっぱい。2008/09/19(金) 22:03:11
三次元splotで、z、y軸だけset size suqarしたいんだけど、やり方おしえてください。。
0407名無しさん@お腹いっぱい。2008/09/24(水) 21:13:40
だれかおしえてやれよ。
ちなみにオレはわかんね。
0408名無しさん@お腹いっぱい。2008/10/01(水) 23:08:23
いちお、保守。
0409名無しさん@お腹いっぱい。2008/10/02(木) 17:56:37
gnuplotで波動関数を描く方法をおしえてください。
0410名無しさん@お腹いっぱい。2008/10/02(木) 22:39:25
釣り?
0411名無しさん@お腹いっぱい。2008/10/02(木) 23:25:09
>>409
一次元で一個しかないやつとかなら普通のプロットでもしてください
0412名無しさん@お腹いっぱい。2008/10/03(金) 23:11:24
いや、3次元のを描きたいんですけど
たとえば、水素原子の2p軌道とか、どうやってやるんですか?
0413名無しさん@お腹いっぱい。2008/10/03(金) 23:28:46
ttp://t16web.lanl.gov/Kawano/gnuplot/spherical_harmonics/index.html
このあたり読めばできるようになるのでは?そのままぶち込めばいけるだろ
0414名無しさん@お腹いっぱい。2008/10/05(日) 22:11:32
Gnuplotかぁ…、嫌いじゃないけど文法に一癖あるような、
そろそろ寿命かな。
0415名無しさん@お腹いっぱい。2008/10/05(日) 22:58:26
寿命認定は勝手にすれば良いけど
いまさらそんな理由かよw
0416名無しさん@お腹いっぱい。2008/10/05(日) 23:14:39
いい代替はあるのか?
0417名無しさん@お腹いっぱい。2008/10/06(月) 01:43:06
>>416
ないよなぁ。SやRはもっと癖があるし、Octaveも然り。
0418名無しさん@お腹いっぱい。2008/10/06(月) 01:45:17
本もそろそろ出してほしいな。
4.2 か 4.3 をターゲットとして、
0419名無しさん@お腹いっぱい。2008/10/06(月) 01:58:13
gnuplotにデータ処理までさせるのか?
0420名無しさん@お腹いっぱい。2008/10/08(水) 23:18:23
gnuplot最高
0421名無し2008/10/09(木) 02:02:59
大きさLのセルの中に直径mの球をn個発生させてモンテカルロ法によるs回のステップによってセル内で球体を動かし、
そのときの動く様子をグラフィック表示したいと考えています。
(自作のプログラムでは球同士が重ならないように条件を設定している。また周期境界条件によってセルから玉がはみ出すことも考えられる。)
gnuplotでs回分の玉の移動をグラフィック表示できますか?もし可能ならばその方法について教えてください。
よろしくお願いします。

※自作のプログラム(Fortran77で記述)上で設定した球に関するパラメータ
・重心の位置(x,y,z座標で表現。必ず0≦x≦L,0≦y≦L,0≦z≦Lを満たすとする。)
・球の直径(m)
・セルの長さ(L)
0422名無し2008/10/09(木) 02:03:41
大きさLのセルの中に直径mの球をn個発生させてモンテカルロ法によるs回のステップによってセル内で球体を動かし、
そのときの動く様子をグラフィック表示したいと考えています。
(自作のプログラムでは球同士が重ならないように条件を設定している。また周期境界条件によってセルから玉がはみ出すことも考えられる。)
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をコマンドラインから起動する場合に、gnuplot>cd ではなく、起動時引数で作業ディレクトリを変更することは可能でしょうか?
例えば、wgnuplot.exe -path "hoge\\hoge" のようにすると作業ディレクトリがhoge\hogeで立ち上がるという動作をさせたいのですが・・・
0425名無しさん@お腹いっぱい。2008/10/09(木) 16:20:12
>>421
アニメ自体は時間毎の絵を後から繋げばいいけど、
そもそもgnuplotでは沢山の球を書くのがめんどい。

他の可視化ソフト探すか、OpenGL叩くかした方がいいよ。
0426名無しさん@お腹いっぱい。2008/10/14(火) 11:22:32
さっき研究室の友達がギニュープロットって言ってた
訂正してあげた方がいいのかなぁ
0427名無しさん@お腹いっぱい。2008/10/14(火) 13:07:43
ニューギニア?
0428名無しさん@お腹いっぱい。2008/10/14(火) 23:37:03
面白いから言わせとけ。
0429名無しさん@お腹いっぱい。2008/10/14(火) 23:51:28
ギニュープロット
リクームプロット
ジースプロット
バータプロット
グルドプロット
■ このスレッドは過去ログ倉庫に格納されています