More Related Content Similar to Gnuplotあれこれ (20) More from Maruyama Tetsutaro (15) Gnuplotあれこれ3. 最新版のインストール(1)
gnuplot の最新版は 4.6.3(2013/06/26 時点)
ubuntu の gnuplot パッケージを見ると、開発中の Saucy
(13.10)では 4.6.3 に対応しているので、これを使おう
gnuplot 4.6.3-1build1 のページから、全てのファイル
(xxx.orig.tar.gz, xxx.debian.tar.gz, xxx.dsc)をダウンロード
ダウンロードしたものを、すべて同じディレクトリに置く
ダウンロードしたファイルを置いたディレクトリに移動
> sudo apt-get install build-essential fakeroot dpkg-dev
これで準備が整ったので、いよいよパッケージの作成へ
3 / 28
4. 最新版のインストール(2)
ソースの展開
> dpkg-source -x gnuplot 4.6.3-1build1.dsc
gnuplot-4.6.3 以下にソースを展開し、パッチも当ててくれる
> cd gnuplot-4.6.3
コンパイル環境を整える
通常ならば apt-get build-dep gnuplot とやれば良さそう
これは apt repository にあるソースに関して
自分で取ってきたものの場合、設定ファイルを見る必要
> vi debian/control
Build-Depends に書かれたパッケージを手動でインストール
この時、いつも使っているパッケージが依存関係から削除さ
れることがあるので、注意が必要
gnuplot の場合、libgd2-noxpm-dev を入れることによって、
gvfs-backends, libgd2-xpm などが削除されるので、パッケージ
作成が終わったら元に戻す
4 / 28
5. 最新版のインストール(3)
コンパイルフラグの設定
せっかくソースから作るので、カスタマイズしよう
> ./configure --help とすれば、オプション一覧が分かる
パッケージのオプションは、debian/rules の conf opts
正直それほど必要無いが、--with-cwdrc でも追加してみよう
debian/rules の conf opts に --with-cwdrc を加えるだけ
コンパイル
> dpkg-buildpackage -rfakeroot -b
> cd .. (ここに deb パッケージが作られている)
削除されてしまったパッケージを復活
> sudo apt-get install gvfs-backends libgd2-xpm
12.04 デフォルトの gnuplot を削除
> sudo apt-get purge gnuplot gnuplot-nox gnuplot-x11
作ったパッケージをインストール
> sudo dpkg -i gnuplot 4.6.3-1build1 all.dev
gnuplot-x11 4.6.3-1build1 i386.deb
apt でやると -nox と -x11 で衝突を回避しれくれるが、
dpkg はしてくれないので -x11 だけを入れる
5 / 28
6. ヘルプの日本語化
せっかくソースがあるので、ヘルプを日本語化する
doc の下に日本語のドキュメントとパッチがあるので、それ
を当てるだけ
> cd gnuplot-4.6.3 && ./configure && make
> cd docs && make clean
> mv gnuplot.doc gnuplot-en.doc
> nkf -w80 gnuplot-ja.doc > gnuplot.doc
> nkf -w80 term-ja.diff > term.diff
> cd .. && patch -p0 < docs/term.diff
> cd docs && make
> sudo cp gnuplot.gih /usr/share/gnuplot/.
これで gnuplot のヘルプが日本語で読める
6 / 28
8. マニュアルの日本語化(2)
pLATEX 用の設定(gnuplot-4.6.3/docs にいるとして)
> make doc2tex
> GNUPLOT LIB=../demo gnuplot plotstyles.gnu
> doc2tex -figures gnuplot.doc gnuplot.tex
> ln -s ../VERSION .
> wget http://tug.ctan.org/tex-
archive/macros/latex209/contrib/picins/picins.sty
> vi pdffigures.tex(新規)
usepackage[dvipdfmx]{graphicx}
usepackage{picins}
> vi titlepag.tex(修正)
usepackage{hyperref} のオプションに dvipdfmx を追加
その直後に以下を追加(栞の文字化け防止)
AtBeginDvi{special{pdf:tounicode EUC-UCS2}}
> extractbb *.pdf
gnuplot.tex の中の、includegraphics で指定されているファイ
ル名に、すべて.pdf の拡張子をつける
8 / 28
9. マニュアルの日本語化(3)
あとは pLATEX でコンパイルするだけ
> platex gnuplot.tex
> platex gnuplot.tex
> platex gnuplot.tex
> makeindex gnuplot.idx
> platex gnuplot.tex
> dvipdfmx gnuplot.dvi
竹野研究室で公開されている PDF に「かなり近いもの」が
出来る
文中に index に出てくる文字が出てきた時に、そこに自動的
にリンクを貼ることが出来ていない
これぐらいはまぁ良しとしよう
9 / 28
11. Excelっぽいグラフ(2)
sample.gnu(タイトル)
set title "US immigration from Europe by decade" font ",16"
set xlabel "Decade" font ",12"
set ylabel "# of immigration" font ",12"
set key outside right top title ‘‘Region’’ font ",10"
set xtics out nomirror font ",10"
set ytics out 500000 nomirror font ",10"
set grid ytics linewidth 1 linetype 1 linecolor 0
demo にある immegration.dat を使うので、合わせたタイトル
フォントは名前を省略してサイズのみ指定
凡例の指定(set key)
outside right top で大体の位置を指定
軸目盛(set ?tics)
グラフの外側に目盛を出す(out)
下と左に目盛を出して、上と右は出さない(nomirror)
x軸の目盛間隔は、データの文字列を使うので省略
グリッド線(set grid)
横の線しか引かない(ytics)
11 / 28
12. Excelっぽいグラフ(3)
sample.gnu(データと背景)
set datafile missing "-"
set object 1 rectangle from graph 0, graph 0 to graph 1, graph 1 behind
set object 1 rectangle fillcolor rgb "#eeece1" fillstyle solid 1.0
やっと Excelっぽい部分
set datafile
immegration.dat が、データが無い部分は”-”になっているの
で、missing で指定
CSV ファイルを読み込む場合は separator ”,” を指定
背景
msoThemeColorBackground2(#eeece1)で塗りつぶしたい
しかし、グリッド線もちゃんと見せたい
graph 0 に四角を書いた後、graph 1 に移し、graph 1 を下に
graph 1 の四角を塗りつぶし
12 / 28
13. Excelっぽいグラフ(4)
sample.gnu(マクロ)
set macros
line = ’with lines linewidth 2 linetype 1 linecolor rgb’
point = ’with points pointsize 1.5’
linepoint = ’with linespoints linewidth 2 linetype 1 pointsize 1.5’
ptypeFV = ’pointtype (i%5)*2+5 linecolor rgb’
ptypeEV = ’pointtype (i%5)*2+4 linecolor rgb’
gnuplot スクリプトはマクロが指定できる(set macros)
with lines は w l と省略できるが、linewidth や linetype と一
緒にマクロで登録
with points, with linespoints も同様
”line color rgb”は、その後に# 16 進数で色を指定できる
points,linespoints は pointtype も指定するため、そちらで付加
for 文でデータごとに i の値を増やしていく
その時の pointtype の設定が ptypeFV/ptypeEV
ptypeFV は塗りつぶされているポイント、ptypeEV は中身が空
13 / 28
15. Excelっぽいグラフ - こんなん出来ます
0
500000
1e+06
1.5e+06
2e+06
2.5e+06
1891-1900 1901-1910 1911-1920 1921-1930 1931-1940 1941-1950 1951-1960 1961-1970
#ofimmigration
Decade
US immigration from Europe by decade
Region
Austria
Hungary
Belgium
Czechoslovakia
Denmark
France
Germany
Greece
Ireland
Italy
Netherlands
Norway
Sweden
Poland
Portugal
Romania
SovietUnion
Spain
Switzerland
UnitedKingdom
Yugoslavia
OtherEurope
15 / 28
17. 日本語のタイトル(2)
eps にも TrueType フォントを埋め込みたい(当然の欲求)
方法は2通り考えられる
gnuplot デフォルトのフォント変換ツール TTF2PT1 を使い、
ttf フォントを pfa フォントに変換して eps に埋め込む
ghostscript の CIDFmap に好きな ttf フォントを設定する
結論から言えば、どちらもダメだった
しかし、フォントにこだわらなければ、日本語の表示は可能
postscript ターミナルの日本語フォント
set terminal postscript eps color
font "GothicBBB-Medium-UniJIS-UTF8-H" # ゴシック体
set terminal postscript eps color
font "Ryumin-Light-UniJIS-UTF8-H" # 明朝体
set output "sample.eps"
17 / 28
20. lua tikz ターミナル
フォントがー、と長いこと悩んでいたが、全く必要無かった
lua tiks terminal
set terminal lua tikz latex color size 320pt,230pt
set output "sample.tex"
使い方
gnuplot は、上のように terminal を設定するだけでほぼ終了
LATEX のプリアンプルに usepackage{gnuplot-lua-tikz} を追加
埋め込む場所に input などで入れるだけ
良い点
キレイ!簡単!素晴らしい!
dvipdfmx で埋め込んだフォントが(当然)そのまま使える
label 等に LATEX のコマンドが使える
ギリシャ文字や数式に悩む日々も終わり!
バックスラッシュはエスケープされるので、 と重ねる
悪い点
フォントなどのサイズ感がだいぶ違う
multipart には対応してないらしい
20 / 28
21. lua tikz ターミナルの出力(ラベルも全部 gnuplotだよ!)
0
500000
1e+06
1.5e+06
2e+06
2.5e+06
1891-1900
1901-1910
1911-1920
1921-1930
1931-1940
1941-1950
1951-1960
1961-1970
移民数(λn)
年代 ( α
β
)
LATEX で描く10年毎のヨーロッパからアメリカへの移民
地域
オーストリア
ハンガリー
ベルギー
チェコ
デンマーク
フランス
ドイツ
ギリシャ
アイルランド
イタリア
21 / 28
22. gnuplot だけで gif アニメーション
もうひとつの目玉といえば、gnuplot「だけ」で gif アニメー
ションが作れてしまうこと
LATEX で書いているので、お見せすることができない
main.gnu
set terminal gif animate optimize delay 3 loop 0 size 500,500
set output "sample.gif"
set size ratio 1
set parametric
set xrange [-1.2:1.2]
set yrange [-1.2:1.2]
set trange [0:2*pi]
set nokey
n = 100
i = 0
load "circle.gnu"
ポイントは、各 gif の描写をする plot を別ファイルにすること
22 / 28
23. gnuplot だけで gif animation
circle.gnu
title(i) = sprintf("t = %d", i)
unset label
unset arrow
theta = i * 2 * pi / n
set label title(i) at -1,1 font ",16"
set arrow from 0,0 to sin(theta),cos(theta) lw 2 lc rgb "blue"
fx(t) = t <= theta ? sin(t) : 1/0
fy(t) = t <= theta ? cos(t) : 1/0
plot fx(t),fy(t) with lines lw 2 lc rgb "red"
if (i < n) i = i + 1; reread
ポイントは、「reread」
これで circle.gnu を何度も呼び出して、gif アニメーションを
作っている
23 / 28
25. 【蛇足・苦闘の歴史】 ttf2pt1 のインストール
debian パッケージをインストールする
上記から debian パッケージ(dsc, orig.tar.gz, diff.gz)をダウ
ンロード
> dpkg-source -x ttf2pt1 3.4.4-1.4.dsc
> cd ttf2pt1-3.4.4
必要パッケージをインストールするのだが、libfreetype6-dev,
libt1-dev ぐらいで、既に入っていた
> dpkg-buildpackage -rfakeroot -b
> cd ..
> sudo apt-get install t1utils
> sudo dpkg -i ttf2pt1 3.4.4-1.4 i386.deb
これで以下のように設定すれば、一見できるように見えるの
だが、文字化けしてしまう
postscript のフォントの設定
set fontpath "/usr/share/fonts/truetype"
set terminal postscript eps color fontfile
"vlgothic/VL-PGothic-Regular.ttf"
25 / 28
26. 【蛇足・苦闘の歴史】 ghostscript のフォント設定
/etc/ghostscript/cidfmap.d/ 以下に適当な.conf ファイルを作
り、フォント名・パスなどを定義する
90gs-cjk-resource-my.conf
/Ricty-Regular << /FileType /TrueType
/Path (/usr/share/fonts/truetype/ricty/Ricty-Regular.ttf)
/CSI [(Japan2) 4] >> ;
/Ricty-Bold << /FileType /TrueType
/Path (/usr/share/fonts/truetype/ricty/Ricty-Bold.ttf)
/CSI [(Japan2) 4] >> ;
/TakaoGothic << /FileType /TrueType
/Path (/usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf)
/CSI [(Japan2) 3] >> ;
/TakaoPGothic << /FileType /TrueType
/Path (/usr/share/fonts/truetype/takao-gothic/TakaoPGothic.ttf)
/CSI [(Japan2) 3] >> ;
/TakaoExGothic << /FileType /TrueType
/Path (/usr/share/fonts/truetype/takao-gothic/TakaoExGothic.ttf)
/CSI [(Japan2) 3] >> ;
26 / 28
27. 【蛇足・苦闘の歴史】ghostscript のフォント設定
90gs-cjk-resource-may.conf(続き)
/TakaoMincho << /FileType /TrueType
/Path (/usr/share/fonts/truetype/takao-mincho/TakaoMincho.ttf)
/CSI [(Japan2) 3] >> ;
/TakaoPMincho << /FileType /TrueType
/Path (/usr/share/fonts/truetype/takao-mincho/TakaoPMincho.ttf)
/CSI [(Japan2) 3] >> ;
/TakaoExMincho << /FileType /TrueType
/Path (/usr/share/fonts/truetype/takao-mincho/TakaoExMincho.ttf)
/CSI [(Japan2) 3] >> ;
/VL-Gothic-Regular << /FileType /TrueType
/Path (/usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf)
/CSI [(Japan1) 6] >> ;
/VL-PGothic-Regular << /FileType /TrueType
/Path (/usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf)
/CSI [(Japan1) 6] >> ;
> sudo dpkg-reconfigure ghostscript
ghostscript では認識できるのだが、まだ文字化けする
27 / 28
28. 【蛇足・苦闘の歴史】ghostscript のフォント設定
フォントの指定
set terminal postscript eps color font "VL-Gothic-Regular"
set output sample.eps
> gs
< GS > /VL-Gothc-Regular findfont setfont
Loading VL-Gothic-Regular font from /usr/share/fonts/...
(フォントの設定に成功)
< GS > (sample.eps) run
⇒ 文字化けをしてしまう
28 / 28