1read 100read
2013年17UNIX33: gnuplot を使おう。 その3 (202) TOP カテ一覧 スレ一覧 2ch元 削除依頼
GNOMEの質問はここに書き込め! (616)
コマンドオプション (157)
telnetについて語れ。 (313)
メーラスレッド (418)
シェルスクリプト総合 その21 (906)
bashで補完スレ (374)

gnuplot を使おう。 その3


1 :2011/08/25 〜 最終レス :2013/09/24
グラフ描画ソフト gnuplot のスレ。
gnuplot 公式 Web ページ
http://www.gnuplot.info/
前スレ
gnuplot を使おう。 その2
http://hibari.2ch.net/test/read.cgi/unix/1164719425/

2 :
■過去スレ
gnuplot を使おう。
http://pc8.2ch.net/test/read.cgi/unix/1002453983/

■役立ちそうなページ
gnuplot tips (not so Frequently Asked Questions)
http://t16web.lanl.gov/Kawano/gnuplot/
gnuplot (Takeno Lab) 日本語まぬある
http://takeno.iee.niit.ac.jp/%7Efoo/gp-jman/
GNUPLOTの第一歩
http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/gnuplot-intro/
gnuplot tips
http://wwwnucl.ph.tsukuba.ac.jp/~inakura/gnuplot/gnuplot.html

3 :
>1 乙

4 :
>1 乙

5 :
>>1 http://gnuplot.sourceforge.net/
いまは,こっちのほうが公式ホームでなかったですか。
http://www.gnuplot.info/はミラーになったのでは?

6 :
ここも忘れてはいけないと思いますが。
http://takeno.iee.niit.ac.jp/~shige/unix/gnuplot/gnuplot.html

7 :
>>2
gnuplot tips
 wwwnucl.ph.tsukuba.ac.jp/~inakura/gnuplot/gnuplot.html
はリンク切れ。

8 :
>>1
おつ

9 :
うに板に即死判定あったっけ?

10 :
Unix板の
データ解析ツールoctaveを語ろう
http://pc12.2ch.net/test/read.cgi/unix/1086016412/
981で即死しました。

11 :
>>9
10未満。

12 :
>>10
いや、それは即死じゃない
980越えて24時間レスがなかったら落ちるのは全板共通
即死ってのは立ったばかりのスレが引っかかるやつ
>>11
ありがと
じゃもう大丈夫か

13 :
Release plans: Version 4.4.4 and beyond
もうすぐ,4.4.4がでるようです。
4.4の次は4.6でなくて,Version 5になるのかな。
http://sourceforge.net/mailarchive/message.php?msg_id=28074411

14 :
前スレの972で
>wgnuplotで起動して最初にplotするときだけ時間が異常にかかります
ですがgnuplot\binary\etc\fontsにあるfonts.confを編集すればTEMPで指定してあるところ以外にも自由におけるようです
ttp://swordfish.s53.xrea.com/2009/11/18/p848/ gimpですが同様の方法で変更できました

15 :
>>14
<cachedir>WINDOWSTEMPDIR_FONTCONFIG_CACHE</cachedir>
<cachedir>~/.fontconfig</cachedir>
のことですか?

16 :
>>15 です。>>14
ttp://swordfish.s53.xrea.com/2009/11/18/p848/
を見てなかったm(__)m。
これに書いてあるわけですね。

17 :
>>14 前スレの972の現象は,cvs版のバイナリ(Win版)ではおきないようです。
ttp://www.tatsuromatsuoka.com/gnuplot/Eng/winbin/

18 :
Fortranのバイナリ形式で出力したデータをgnuplotでプロットしたいのですが、
どう書けば良いかわからないので教えてください。
以下のように出力したデータ
(円柱座標系、R方向,Z方向に0.02mごと、theta方向に1度ことに出力)を、
k=0で指定されるR-Z断面について、Bz成分の強度のグラフをpm3dで描きたいです。
write(10) intA, intB, intC, intD ! 4byte+単精度整数×4+4byte=24byte
write(10) realA, realB, realC, realD ! 4byte+倍度浮動小数点×4+4byte=40byte
do k = 0,359 ! ← 円柱座標系のtheta方向
write(10) ((Bx(i,j,k), By(i,j,k), Bz(i,j,k), i=0,100), j=0,100)
end do
これをプロットしようと、以下の様に途中まで書きましたが、
formatやusingをどのように書けば良いのか教えてください。
splot 'fort.10' binary \
skip=64 \
format="%*int%???%*int" \
endian=big \
array=(101,101) \
scan=xy \
dx=0.02 \
dy=0.02 \
using ? with pm3d title'B_{x}'
gnuplotのバージョンは4.4、Fortranのコンパイラはifortを使っています。

19 :
追記
Bx、By、Bzはいずれも倍精度実数です。

20 :
windowsのgnuplotのwxtでdashを使いたいんだけど無理なのかな?
アンチエイリアス機能が便利でそのままコピペして使いたい
他の方法でdash扱ってると面倒すぎる

21 :
>>20
set term wxt dashed
test

22 :
>>21
まさにすべて解決した気分。この先どうなるかわからないけど
非常に有難い

23 :
データのうち、一部分だけ別のpoint typeでプロットしたいのですができますか?
全ての点をlineでつなぎぐので別々にプロットするのはなしでお願いします。

24 :
すいません自己解決しました。

25 :
Windows7でgnuplot4.4.4を使っているのですが、EPSを作成する際にラベルに日本語を使用した場合、
数字などの半角文字の文字間隔が広くなってしまい、見栄えが悪く困っています。
例えば
http://www.obihiro.ac.jp/~suzukim/masuda/utils/gnuplot.html
ここに解説されている「日本語を含むEPSファイルの保存」のとおりにEPSを作った場合、
http://www.obihiro.ac.jp/~suzukim/masuda/utils/gnuplot_lc_eps.png
のような出力が欲しいのですが、私の環境では
http://www.dotup.org/uploda/www.dotup.org2282634.png
のように出力されてしまうわけです。
どなたか解決方法を教えていただけないでしょうか。

26 :
手元にgnuplot-4.4.4がないので,cvs版(4.5)でやってみました。
フォントを"GothicBBB-Medium-83pv-RKSJ-H" で指定して
shift-jisでやったところお望みに近いグラフができました。
ちなみにWindows XPです。

27 :
"GothicBBB-Medium-UniJIS-UTF8-H"でUTF-8で保存でもうまくいきました。
ghostscriptのバージョンは9.00です。

28 :
gnuplot-4.4.4をダウンロードしてやってみました。
私の環境ではEUCでは,postscriptファイルが壊れて見れませんでした。
"GothicBBB-Medium-83pv-RKSJ-H"  shift-jis
"GothicBBB-Medium-UniJIS-UTF8-H" UTF-8
でうまくいきました。ghostscriptのバージョンなどにもよるかもしれませんね。

29 :
>>26-28
今まではGhostscript9.02を使っていたのですが、9.00を使ったところ問題なく出力されました。
ありがとうございました。

30 :
>>25-29
http://takeno.iee.niit.ac.jp/~shige/unix/gnuplot/gpinfo-2011.html#info-20111120
に詳しい解説がなされています。

31 :
こんなサイトがあるようです。
なかなか凝ったプロットがかけるようです
http://www.phyast.pitt.edu/~zov1/gnuplot/html/intro.html

32 :
うお、すげえ

33 :
Windowsで特定のアプリケーションのCPU使用率と測定開始時間から終了時間までを測定しGnuplotを使いグラフにしたいのですがCPU使用率を計るにはどうしたらよろしいでしょうか?

34 :
gnuplot関係なさ杉ワラタwパフォーマンスカウンターでできるよ

35 :
gnuplot -p scriptfile.gp
なんて感じで、スクリプトファイルを読み込ませて起動したとします。
この時、scriptfileg.gp の中で gnuplot が読み込んだスクリプトファイルの名前を取得する事ってできるでしょうか?

36 :
俺は label とかに TeX 使いまくてたから、今だに plus 使ってるよ。。。
どうしたら良いのか。。。

37 :
>>36
epslatexとかどう?
gnuplot走らせるところから、出力されたTeXファイルにヘッダ加えてコンパイル、目的の形式に変換
までスクリプトで自動化すればそう面倒ではないけど

38 :
いや、4系の高機能に惹かれるのだが、これまでの資産のせいで乗り移れないってこと。
両方入れれば良いのだが、FreeBSDのポーツだと排他的だし。。。

39 :
何故pyxplotの話にならないのだろう(ぼそ)

40 :
グラフをプロットして出力するとデフォルトだと横長の画像が出力されるけど
これを4:3の大きさに指定したり、グラフの枠を指定して(できればピクセル単位で)出力ってできる?
x軸y軸で4:3を比率調整で作っても、それがx軸y1軸y2軸になるとy2軸側の文字が入って
画像としては4:3だけどグラフが4:3じゃなくなってしまう

41 :
出力された画像を4:3に加工するんじゃ駄目なの?

42 :
>>40
set term wxt size 600,800
とか。
詳しくは使用する terminal のヘルプを見てくれ。

43 :
gnuplot 4.6-rc1がでました。
Windows,Cygwin,DJGPPのバイナリも配布されていま。

Windows 版は,今回からインストーラー形式になっています。
また,日本語環境でインストールはデフォールトは日本語環境となります。
初心者には,インストールがずいぶん簡単になるようです。
http://sourceforge.net/projects/gnuplot/files/gnuplot/4.6.rc1/

44 :
理論上+∞に発散して閾値を超えると-∞から始まる曲線を描写しようと考えてるんだけど
実際のデータは無限大に行くわけでもなく、普段0.001程度の値が1まで行って-1まで
一気に落ちるって感じになってる。
こういうデータを無限に発散しているように見せるテクってある?
+∞から-∞の点を繋ぐ線を消したい

45 :
2本に分けて描く

46 :
(abs(1/x)<c)?(1/x):(0/0)
定数cとsampleの値を適当に調節する

47 :
>>45
無限に発散する点と普通に0を通過していく点があるから
2本に分けるにも結構難しかった
もっと効率よくできないものか
>>46
計算ソフトで出力されたデータをgnuplotに読み込ませて描写しているから
関数表現だと無理だと思う
それをプロットに応用できればいいのだが…
計算能力の問題で>普段0.001程度の値が1まで行って-1まで一気に落ちる
という結果になってる。
あくまで例で綺麗に1から-1まで一瞬に移動してくれるわけでもなく
理論上無限だけど、その点は効果が薄いために
他の発散は1から-1まで下がるのに対して0.05から-0.05に下がる点があったり
発散の度合いにも差があって、発散が弱いと普通に0を通っているのか発散しているのか見分けが難しい

48 :
>>47
>計算ソフトで出力されたデータをgnuplotに読み込ませて描写しているから
> 関数表現だと無理だと思う
Help ternaryをみると次のようなものがあるから,三項演算子とusingで
可能だと思います。
plot 'file' using 1:( $4<0 ? 1/0 : ($2+$3)/2 )

49 :
sin 関数のグラフで x 軸のメモリにπを入れる方法ってない?

50 :
>>49
gnuplot のturial.pdf のFigure 5 にlatex terminal での例がある。
set terminal latex
set output "eg4.tex"
set format y "$%g$"
set format x "$%.2f$"
set title 'This is $\sin(x)$'
set xlabel "This is the $x$ axis"
set ylabel "$\\sin(x)$"
unset key
set xtics ('$-\pi$' -pi,\
'$-\frac{\pi}{2}$' -pi/2,\
"0" 0,\
'$\frac{\pi}{2}$' pi/2,\
'$\pi$' pi)
plot [-pi:pi] [-1:1] sin(x)
Latex terminalが使えないならpostscript enhanced でやることが考えられる。

51 :
>>50
turial.pdf ==> tutorial.pdf

52 :
>>50
ありがとう!
よく,emf ファイルで出力するからこの方法で大丈夫か
心配だったけど emf も enhance 付ければ出力できるね!

53 :
>>50 >>52
emfで enhancedでやってみた。
set terminal emf enhanced
set output "sinpi.emf"
set title 'This is sin(x)'
set xlabel "This is the x axis"
set ylabel "sin(x)"
unset key
set xtics ('-{/Symbol p}' -pi, \
'-{/Symbol p} / 2' -pi/2, \
'0' 0 , \
'{/Symbol p} / 2' pi/2, \
'{/Symbol p}' pi)
plot [-pi:pi] [-1:1] sin(x)

54 :
"Skipping data file with no valid points"のエラーってなんなんですか?
どんなコードもこれが出てきてしまってグラフィックができないです。

55 :
英語で書かれているとおりだよ。
無効なデータをスキップしましたってこと。
データのフォーマットがおかしいんじゃないの?

56 :
>>54
実行できないコードの一つでもさらせば,解答がつくかも

57 :
x データが 48〜120,218〜289 という具合に
データの塊が2つにわかれているんだけど,
これを省略線(波線2つ)を入れて省略するみたいに
表現できないかな?

58 :
>>57 データではないけどそういう例はある
http://www.phyast.pitt.edu/~zov1/gnuplot/html/broken.html

59 :
>>58
ありがとう!
簡単にできるわけじゃないのねw.
とりあえず,じっくり読み考えながらやってみるわ.

60 :
gnuplot version 4.6 released!

61 :

あららら・・・
インストール
変わっちゃったね?

62 :
gnuplot 4.6.0がでてます。
http://sourceforge.net/projects/gnuplot/files/gnuplot/4.6.0/

63 :
>>62 うああ,かぶったm(__)m。
>>61 Windows版ですね。インストーラーがついてますよね。
でも,従来型のzipもあります。

64 :
set yrange [0:2e+9]
set format y "%s%c"
としたとき、Y目盛りが
  期待: 500M, 1G, 1.5G, 2G
  実際: 500.000000M, 1.000000G, 1.500000G, 2.000000G
となります。
ソースを見ると、gprintfの%sでは、stdioのprintfの%fが使われているっぽい。
%gなら余計な0は表示されないのに、%fが使われている積極的な理由ってあるのかな?
とりあえずソースいじれば何とかなりそうだけど、
自分だけで使ってるわけじゃないので、それはやりたくないんだよな。

65 :
4.4以降でterminal windowsとかでemfを吐くと
それをパワポ上でグループ解除すると枠線らしきものが
かなりのでかさで現れて酷いことになる
wxtだと確かに綺麗だけど
ビットマップ扱いで拡大するとボヤけたりepsに変換すると汚くなる
ボヤけないようにemfで保存すると枠線が・・・となる
term windowsだと破線の太さをgnuplot上で太くできないから
仕方なくwxt使ってるんだけど
wxtで出力された見た目のままベクター形式で出力できないのだろうか

66 :
> wxtで出力された見た目のままベクター形式で出力できないのだろうか
pdfcairo
powerpointで読み込む方法があるのか知らんけど

67 :
ylabelを左じゃなくて、軸の上に表示したい

68 :
>>67
ylabel ではなく,label をグラフの外の座標に
設定すれば良いんじゃないだろうか?

69 :
gnuplot> set pm3d map
gnuplot> splot [:2*pi][:2*pi] sin(x)*cos(y)
ってやるとy軸の範囲が0~7になって上に空白が入っちゃうのってどうやって直したらいい?


70 :
>>69
下限を設定したらうまくいったよ

71 :
>>70
おお!ありがとうございます!

72 :
ver4.6でグラフをemfにしてファイル出力してるんだけど
powerpoint上でグループ解除するとグラフには関係ない謎の透明で巨大な枠が
出現して、作業効率が下がるんだけどこれを解決できないだろうか
ver4.2ではこんなことはなかったんだが
仕様でも変わった・・・?

73 :
↓みたいなfor文において
plot for [2:3] "hoge.dat" using 1:i
ここでusingにabsなどの処理をしたいときはどうやればいいですか?
using 1:abs(i) としたら案の定駄目でした

74 :
gnuplot> q=1.60e-19
gnuplot> print q**16
1.84467440737095e-301
gnuplot> print q**20
0.0
上記のように、q=1.60e-19の累乗が大きい値になると、計算結果が0.0になってしまいます。
どうすれば、正確な値がでてきますか?
(次に続く)

75 :
オーバーフロー?

76 :
この場合アンダーフローじゃね?

77 :
そっか、マイナスついていたか。
確かにアンダーフローだな。

78 :
gnuplotの問題ってわけじゃないね。
何事にも限りがあるってことだ
doubleが64ビットより多い処理系でビルドすればましにはなるかな。
いずれにしろ限りはあるが

79 :
set xtics (pi)にした時、横軸に3.14,6.28,…じゃなくて
π,2π,…ってするにはどうしたらいいの?

80 :
set xtics (\
"-2{/Symbol p}" -2*pi, \
"-3{/Symbol p} / 2" -3*pi/2, \
"-{/Symbol p}" -pi, \
"-{/Symbol p} / 2" -pi/2, \
"0" 0, \
"{/Symbol p} / 2" pi/2, \
"{/Symbol p}" pi, \
"3{/Symbol p} / 2" 3*pi/2, \
"2{/Symbol p}" 2*pi \
)

81 :
>>73
http://takeno.iee.niit.ac.jp/~shige/unix/gnuplot/gpinfo-2012.html#info-20120603
によると,
plot for [i=2:3] 'hoge.dat' using 1:(abs($i))
すべきのようです。

82 :
1つのグラフに対して上と下のx軸で別の単位を使うことはできますか?
可視光線の透過スペクトルで下に波長(nm),上に波数(/cm)を表示したいです.
下軸の波長を100程度の等間隔にして,上に波数(=10^7/波長)の目盛りを付けられませんか

83 :
set x2label
set x2tics nomirror
plot hoge axes x2y1

84 :
こういうのです
http://christianyates.com/category/subject/flex

85 :
>>81
4.6 patchlevel 0で試したところ (abs($i)) は駄目ですが、 (abs(column(i))) でいけました。
ありがとうございました。


86 :
負の数をログスケールにしたいんですが...
  set logscale y
  set ytics format "-%g"
  plot 'hoge' using 1:(-$2)
こんな感じでいけますが,x11などの場合で,
いったん普通にプロットしたあと,キー入力でノーマルスケールと
ログスケールを切り替えたいです。
bind で何とかならないかとも思ったのですが,
plot文を変える必要があるため,特定の用途ならともかく,
汎用的にはやるのはなかなか難しそうです。
理想は
  set logscale y -10
とかやると,負数のログスケールになってくれたりするとありがたいんですが...
ちなみにソースを見るとfabsを取っているようで,-10でも10でも同じ結果になります。

87 :
保守

88 :
>>86です。
その後ぱったりとレスが途絶えました。
僕は地雷を踏んでしまったのでしょうか??

89 :
地雷ではなく,単に高度なことを要求して,
誰も答えられないだけだと思われる.

90 :
>>86
ソースいじれ。
もしくは、開発チームに参加しろ。

91 :
定番の、言い出しっぺの法則

92 :
>>86
ttp://takeno.iee.niit.ac.jp/~shige/unix/gnuplot/gpinfo-2012.html#info-20120823
負の数に対数軸を適用したい、ということと、 キー入力でグラフの線形軸と対数軸を切り替えたい (x11)、 という 2 つの質問 (多分) がありました (86)。

93 :
>>86です。
竹野先生ありがとうございます。
ちょっと言葉足らずでしたが,やりたいことは,x11ウィンドウで
負数のデータをリニアスケールでプロットした後,キー入力で
(符号を変えた)ログスケールとリニアスケールを交互に切り替えたい,
というものでした。
正数のデータであればlキーやLキーで切り替えられますが,
Yデータが全部負数の場合はエラーになったりします。
一部が負数の場合は正数部分のみが表示されます。
ちなみに,負数のデータというのは,たとえばあるデバイスを流れる
電流のようなものです。電流方向の定義というか電流計を接続する
向きによって同じものが正になったり負になったりします。
しかもバイポーラトランジスタのGummel plotのようにログスケールで
あらわしたいこともよくあります。
gnuplotソース改変も試みましたが,自分のスキルではちょっと無理そうです。
他には,リニアスケールとログスケールを別ウィンドウでプロットし,
gnuplot自身でなく別のツールで切り替えるというようなこともアイデアと
しては考えています。

94 :
昔、aplacというspiceのパチもんみたいな回路シミュレータでやったな。
spiceでもグラフの切替はできるが、インタラクティブには出来なかった記憶が。
そもそもF77だったし。

95 :
file='file1.txt'
plot file u 1:2
log=0
bind 'ctrl-l' '\
  if (log==1) \
    unset logscale y; \
    plot file u1:2; \
    log=0; \
  else \
    set logscale y ; \
    plot file u 1:(abs($2)); \
    log=1'

96 :
>>86です。
>>95さん
いい感じです。変数を使ってbindにplot分を割り当てるのは盲点でした。
自分の目的としてはこれで何とかいけそうです。
ありがとうございました。


97 :
4.6 をインストールしたのだが、上手く動かない。多分4.6固有の問題じゃない気がする。
 環境は、Windows7 home 64bit
 今までは、4.0 を使っていて、.pltファイルをwgnuplot.exeに関係づけて、、それは正常に動いていた。
 4.6は、ディフォルトで .plt に関係付けられているので今までどうりのファイルでいいのだろうと思い、試して見た。

98 :
 取りあえず weight06_test.plt として以下のようなファイルを作った。
#cd "D:/USER/TOMURA/Data/体重/"
set term postscript
set title "Body Weight Change (2012/09/01-2013/08/31)"
set xlabel "Date [month/day]"
set xdata time
set timefmt "%Y/%m/%d"
set format x "%m/%d"
set ylabel "Weight [kg]"
set yrange [70:75]
set grid xtics ytics back lw 2
set style line 1 lt 1 lw 1 pt 7 ps 0.5
set output 'weight06_test.ps'
plot 'weight06.txt' using 1:2 with linesp notitle ls 1
これをダブルクリックしても weight06_test.ps は、出来上がらない。 4.0 では、出来上がっていたはず。

99 :
 試しに同じフォルダに作ったバッチファイルに
"C:\Program Files (x86)\gnuplot\bin\wgnuplot.exe"
と書いて実行して weight06_test.plt の中身をコピペで与えると weight_test.ps が出来上がる。
 #cd のコメントを削って生かしてやっても .plt ファイルのダブルクリックでは、正常に動かないが、
普通に wgnuplot を起動して cd からの weight06_test.plt の中身をコピペしてやると正常に動く。
(weight06_test.ps が出来上がる)
 仕方ないので今は
"C:\Program Files (x86)\gnuplot\bin\wgnuplot.exe" weight06_test.plt
と書いたバッチファイルを作ってそれを実行している。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
失業者はオープンソースのコードを書くか (151)
*BSD/ThinkPad (516)
ハッカーになりたいんですけど誰か教えて下さい (944)
■OpenBSD(VMS)の考察及炉理画像を貼り付けるスレ (121)
未だに10Base (119)
Sun Microsystems 最寄の親戚 (210)
--log9.info------------------
福田彩乃 (396)
辰巳啄郎が公式ブログでデマを拡散!! (291)
全裸男性ストリップに通う整形モンスター板野友美 (257)
【リアルバービー】ダコタ・ローズ【自称16歳】 (573)
研音25 (358)
島田紳助の復帰に賛成?反対? (965)
【鼻の穴】ローラ(笑)アンチスレ【●●】 (709)
■■■■ 杉本有美 Part 1 ■■■■ (252)
酒井法子の復帰と夜 (176)
オードリー【Part3186】 (901)
芸能人の身長を推察するスレ part98 (902)
【エヴァ】桜 稲垣早希 part437【ブログ旅】 (906)
サセコ栽培86 (452)
大桃美代子を必死な女1位にしよう (112)
二宮和也&佐々木希 32 (694)
\\\ 遠藤久美子(其の参拾七) \\\ (310)
--log55.com------------------
僕のヒーローアカデミア ネタバレスレ(ワッチョイ無し) Part174
【吾峠呼世晴】鬼滅の刃219斬【ありがとう】
【電子書籍】少年ジャンプ+ Part506【プラス】
【藤本タツキ】チェンソーマン15
ジャンプ打ち切りサバイバルレースPart2965
HUNTER×HUNTER強さ議論スレ part.1174
【電子書籍】少年ジャンプ+ Part507【プラス】
ジャンプ打ち切りサバイバルレースPart2966