SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Gnuplotあれこれ
まるやま
2013/06/26
1 / 28
Gnuplot あれこれ
私の備忘録も兼ねて
OS は Ubuntu 12.04(Quantal Quetzal) だとします
他の資料とカブっている所もあるけど、キニシナイ
2 / 28
最新版のインストール(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
最新版のインストール(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
最新版のインストール(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
ヘルプの日本語化
せっかくソースがあるので、ヘルプを日本語化する
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
マニュアルの日本語化(1)
日本語マニュアルは新潟工科大学情報電子工学科竹野研究
室の gnuplot のページで公開されています
いつまでも頼るわけにはいかないし、作ってみよう
しかし、問題が山積み
pdfLATEX でコンパイルするようになっている
しかし pdfLATEX は日本語化されていない
グラフィックスタイルファイルが無い
hyperlink がうまく作れない
pdfLATEX でないと、文中のハイパーリンクが作れない
なんとか pLATEX で頑張ってみよう
7 / 28
マニュアルの日本語化(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
マニュアルの日本語化(3)
あとは pLATEX でコンパイルするだけ
> platex gnuplot.tex
> platex gnuplot.tex
> platex gnuplot.tex
> makeindex gnuplot.idx
> platex gnuplot.tex
> dvipdfmx gnuplot.dvi
竹野研究室で公開されている PDF に「かなり近いもの」が
出来る
文中に index に出てくる文字が出てきた時に、そこに自動的
にリンクを貼ることが出来ていない
これぐらいはまぁ良しとしよう
9 / 28
Excelっぽいグラフ(1)
gnuplot で(3次元棒グラフを除く)大抵のグラフを綺麗に
描ける
しかし、Excel2010 のグラフも(色使いとか)意外と好き
gnuplot で Excelっぽいグラフを描くスクリプトを作ろう
sample.gnu(ターミナルとグラフのサイズ)
set terminal wxt size 1000,620
# set terminal postscript eps color
# set output "sample.eps"
# set terminal pngcairo size 1000,620
# set output "sample.png"
set size ratio 0.62
ターミナルは3種類あれば十分だろう
wxt(Xの画面)・postscript(eps)・pngcairo(png)
ターミナルのついでにサイズも指定している
postscript でサイズを指定すると何故か上手く作れない
10 / 28
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
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
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
Excelっぽいグラフ(4)
sample.gnu
color(i) = (i%6==0?0x4f81bd:(i%6==1?0xc0504d:(i%6==2?0x9bbb59:
(i%6==3?0x8064a2:(i%6==4?0x4bacc6:0xf79646)))))
plot for [i=0:21] ’immigration.dat’ using 0:i+2:xticlabels(1) title
columnheader(i+2) @linepoint @ptypeFV color(i)
線の色
msoThemeColorAccent1∼6 の6色を使いたい
gnuplot は関数が定義できるので、i の値で判断
3項演算子を使った汚い実装
いよいよ、プロット
for [i=0:21] で、以降は for 文でぐるぐる回る
using は xの列:yの列:オプション という意味
オプションに 16 進数を入れて linecolor rgb variable とすれば、
ここで線の色を指定することも出来る
しかし、上記だと lines が上手く設定できない
ここは、xticlabels(1) でx軸のラベルをデータの1列目に設定
title columnheader(i+2) で、凡例に出る名前を設定
マクロは名前に @ をつける
線の色を color() 関数で設定
14 / 28
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
日本語のタイトル(1)
gnuplot は日本語の出力ができます
ただし(当然)日本語のフォントを指定しなければダメ
ということで、フォントの問題になる
wxt, pngcairo ターミナルの場合
fc-list で出てくるフォントが設定できる
ghostscript のフォントも使える
/etc/ghostscritp/cidfmap.d 参照
デフォルトは Sans
Ubuntu の場合、普通は日本語フォントが設定されているの
で、何も考えなくても日本語が表示できてしまう
例えばこのように設定する
set terminal wxt size 1000,620 font ”VL PGothic”
問題は postscript ターミナルの場合
16 / 28
日本語のタイトル(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
日本語のタイトル(3)
0
500000
1e+06
1.5e+06
2e+06
2.5e+06
1891-19001901-19101911-19201921-19301931-19401941-19501951-19601961-1970
移民数
年代
10年毎のヨーロッパからアメリカへの移民
地域
オーストリア
ハンガリー
ベルギー
チェコ
デンマーク
フランス
ドイツ
ギリシャ
アイルランド
イタリア
オランダ
ノルウェー
スウェーデン
ポーランド
ポルトガル
ルーマニア
ソビエト
スペイン
スイス
イギリス
ユーゴスラビア
その他
18 / 28
日本語のタイトル(4)
pngcairo ターミナルで VL ゴシックフォントを出力したもの
個人的には VL ゴシックがとても好き
19 / 28
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
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
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
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
Let’s gnuplotting!
24 / 28
【蛇足・苦闘の歴史】 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
【蛇足・苦闘の歴史】 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
【蛇足・苦闘の歴史】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
【蛇足・苦闘の歴史】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

Mais conteúdo relacionado

Mais procurados

2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来Preferred Networks
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門Shiqiao Du
 
Exploring universe with neutral hydrogen + machine learning
Exploring universe with neutral hydrogen + machine learningExploring universe with neutral hydrogen + machine learning
Exploring universe with neutral hydrogen + machine learningHayato Shimabukuro
 
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxNVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxTomoki SHISHIKURA
 
本当のClosure Compilerをお見せしますよ。
本当のClosure Compilerをお見せしますよ。本当のClosure Compilerをお見せしますよ。
本当のClosure Compilerをお見せしますよ。Teppei Sato
 
QtとC++でGUIプログラミング
QtとC++でGUIプログラミングQtとC++でGUIプログラミング
QtとC++でGUIプログラミングseanchas_t
 
連続最適化勉強会
連続最適化勉強会連続最適化勉強会
連続最適化勉強会shima o
 
ゼロから始めるレコメンダシステム
ゼロから始めるレコメンダシステムゼロから始めるレコメンダシステム
ゼロから始めるレコメンダシステムKazuaki Tanida
 
D3.jsで日本地図を描いてみた
D3.jsで日本地図を描いてみたD3.jsで日本地図を描いてみた
D3.jsで日本地図を描いてみたmapquestIwasaki
 
VerilatorとSystemCでSoftware Driven Verification
VerilatorとSystemCでSoftware Driven VerificationVerilatorとSystemCでSoftware Driven Verification
VerilatorとSystemCでSoftware Driven VerificationMr. Vengineer
 
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...Deep Learning JP
 
SNPデータ解析入門
SNPデータ解析入門SNPデータ解析入門
SNPデータ解析入門Amelieff
 
アクセシビリティのテスト・取り組みとデザインシステムを活用した浸透.pdf
アクセシビリティのテスト・取り組みとデザインシステムを活用した浸透.pdfアクセシビリティのテスト・取り組みとデザインシステムを活用した浸透.pdf
アクセシビリティのテスト・取り組みとデザインシステムを活用した浸透.pdfShin Yasuda
 
MN-3, MN-Core and HPL - SC21 Green500 BOF
MN-3, MN-Core and HPL - SC21 Green500 BOFMN-3, MN-Core and HPL - SC21 Green500 BOF
MN-3, MN-Core and HPL - SC21 Green500 BOFPreferred Networks
 
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」Ken'ichi Matsui
 
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践Yoshifumi Kawai
 
論文に関する基礎知識2016
 論文に関する基礎知識2016 論文に関する基礎知識2016
論文に関する基礎知識2016Mai Otsuki
 
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートII
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートIIopenFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートII
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートIIAtsushi Tadokoro
 

Mais procurados (20)

2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
 
Exploring universe with neutral hydrogen + machine learning
Exploring universe with neutral hydrogen + machine learningExploring universe with neutral hydrogen + machine learning
Exploring universe with neutral hydrogen + machine learning
 
ごちうサーチ
ごちうサーチごちうサーチ
ごちうサーチ
 
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxNVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 Linux
 
本当のClosure Compilerをお見せしますよ。
本当のClosure Compilerをお見せしますよ。本当のClosure Compilerをお見せしますよ。
本当のClosure Compilerをお見せしますよ。
 
QtとC++でGUIプログラミング
QtとC++でGUIプログラミングQtとC++でGUIプログラミング
QtとC++でGUIプログラミング
 
HashMapとは?
HashMapとは?HashMapとは?
HashMapとは?
 
連続最適化勉強会
連続最適化勉強会連続最適化勉強会
連続最適化勉強会
 
ゼロから始めるレコメンダシステム
ゼロから始めるレコメンダシステムゼロから始めるレコメンダシステム
ゼロから始めるレコメンダシステム
 
D3.jsで日本地図を描いてみた
D3.jsで日本地図を描いてみたD3.jsで日本地図を描いてみた
D3.jsで日本地図を描いてみた
 
VerilatorとSystemCでSoftware Driven Verification
VerilatorとSystemCでSoftware Driven VerificationVerilatorとSystemCでSoftware Driven Verification
VerilatorとSystemCでSoftware Driven Verification
 
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
 
SNPデータ解析入門
SNPデータ解析入門SNPデータ解析入門
SNPデータ解析入門
 
アクセシビリティのテスト・取り組みとデザインシステムを活用した浸透.pdf
アクセシビリティのテスト・取り組みとデザインシステムを活用した浸透.pdfアクセシビリティのテスト・取り組みとデザインシステムを活用した浸透.pdf
アクセシビリティのテスト・取り組みとデザインシステムを活用した浸透.pdf
 
MN-3, MN-Core and HPL - SC21 Green500 BOF
MN-3, MN-Core and HPL - SC21 Green500 BOFMN-3, MN-Core and HPL - SC21 Green500 BOF
MN-3, MN-Core and HPL - SC21 Green500 BOF
 
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
 
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
 
論文に関する基礎知識2016
 論文に関する基礎知識2016 論文に関する基礎知識2016
論文に関する基礎知識2016
 
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートII
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートIIopenFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートII
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートII
 

Semelhante a Gnuplotあれこれ

Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Ransui Iso
 
KETpic できれいな図を書こう
KETpic できれいな図を書こうKETpic できれいな図を書こう
KETpic できれいな図を書こうYoshitomo Akimoto
 
RでGISハンズオンセッション
RでGISハンズオンセッションRでGISハンズオンセッション
RでGISハンズオンセッションarctic_tern265
 
どこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティスどこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティス5mingame2
 
Cython intro prelerease
Cython intro prelereaseCython intro prelerease
Cython intro prelereaseShiqiao Du
 
2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest informationSony Network Communications Inc.
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Ransui Iso
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Etsuji Nakai
 
8F Emacs seminar 1st
8F Emacs seminar 1st8F Emacs seminar 1st
8F Emacs seminar 1sttoshi_pp
 
第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章Tomonobu_Hirano
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案yushin_hirano
 
15分でざっくり分かるScala入門
15分でざっくり分かるScala入門15分でざっくり分かるScala入門
15分でざっくり分かるScala入門SatoYu1ro
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Springanyakichi
 
Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Ryo Suzuki
 
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talkmitamex4u
 

Semelhante a Gnuplotあれこれ (20)

Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3
 
KETpic できれいな図を書こう
KETpic できれいな図を書こうKETpic できれいな図を書こう
KETpic できれいな図を書こう
 
RでGISハンズオンセッション
RでGISハンズオンセッションRでGISハンズオンセッション
RでGISハンズオンセッション
 
HPC Phys-20201203
HPC Phys-20201203HPC Phys-20201203
HPC Phys-20201203
 
どこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティスどこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティス
 
Cython intro prelerease
Cython intro prelereaseCython intro prelerease
Cython intro prelerease
 
2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
 
8F Emacs seminar 1st
8F Emacs seminar 1st8F Emacs seminar 1st
8F Emacs seminar 1st
 
第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
 
15分でざっくり分かるScala入門
15分でざっくり分かるScala入門15分でざっくり分かるScala入門
15分でざっくり分かるScala入門
 
ALPSチュートリアル(6) Matplotlib入門
ALPSチュートリアル(6) Matplotlib入門ALPSチュートリアル(6) Matplotlib入門
ALPSチュートリアル(6) Matplotlib入門
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Spring
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発
 
about DakotagUI
about DakotagUIabout DakotagUI
about DakotagUI
 
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
 

Mais de Maruyama Tetsutaro

Online Matching and Ad Allocaton 8章&9章半分
Online Matching and Ad Allocaton 8章&9章半分Online Matching and Ad Allocaton 8章&9章半分
Online Matching and Ad Allocaton 8章&9章半分Maruyama Tetsutaro
 
shot note で手書き資料作成
shot note で手書き資料作成shot note で手書き資料作成
shot note で手書き資料作成Maruyama Tetsutaro
 
ユークリッド距離以外の距離で教師無しクラスタリング
ユークリッド距離以外の距離で教師無しクラスタリングユークリッド距離以外の距離で教師無しクラスタリング
ユークリッド距離以外の距離で教師無しクラスタリングMaruyama Tetsutaro
 
機械学習向けプログラミング言語の使い分け - RCO の場合
機械学習向けプログラミング言語の使い分け - RCO の場合機械学習向けプログラミング言語の使い分け - RCO の場合
機械学習向けプログラミング言語の使い分け - RCO の場合Maruyama Tetsutaro
 
Mining of massive datasets chapter3
Mining of massive datasets chapter3Mining of massive datasets chapter3
Mining of massive datasets chapter3Maruyama Tetsutaro
 
業務に活かすデータサイエンスとは?
業務に活かすデータサイエンスとは?業務に活かすデータサイエンスとは?
業務に活かすデータサイエンスとは?Maruyama Tetsutaro
 
Ubuntuで最新パッケージを導入
Ubuntuで最新パッケージを導入Ubuntuで最新パッケージを導入
Ubuntuで最新パッケージを導入Maruyama Tetsutaro
 
Zshでデキるプロンプト
ZshでデキるプロンプトZshでデキるプロンプト
ZshでデキるプロンプトMaruyama Tetsutaro
 
ランダム・シャッフル
ランダム・シャッフルランダム・シャッフル
ランダム・シャッフルMaruyama Tetsutaro
 
Zipf分布に従う乱数の生成方法
Zipf分布に従う乱数の生成方法Zipf分布に従う乱数の生成方法
Zipf分布に従う乱数の生成方法Maruyama Tetsutaro
 
円錐曲線の極座標表示
円錐曲線の極座標表示円錐曲線の極座標表示
円錐曲線の極座標表示Maruyama Tetsutaro
 

Mais de Maruyama Tetsutaro (15)

Online Matching and Ad Allocaton 8章&9章半分
Online Matching and Ad Allocaton 8章&9章半分Online Matching and Ad Allocaton 8章&9章半分
Online Matching and Ad Allocaton 8章&9章半分
 
shot note で手書き資料作成
shot note で手書き資料作成shot note で手書き資料作成
shot note で手書き資料作成
 
ユークリッド距離以外の距離で教師無しクラスタリング
ユークリッド距離以外の距離で教師無しクラスタリングユークリッド距離以外の距離で教師無しクラスタリング
ユークリッド距離以外の距離で教師無しクラスタリング
 
機械学習向けプログラミング言語の使い分け - RCO の場合
機械学習向けプログラミング言語の使い分け - RCO の場合機械学習向けプログラミング言語の使い分け - RCO の場合
機械学習向けプログラミング言語の使い分け - RCO の場合
 
keynoteでslideshare
keynoteでslidesharekeynoteでslideshare
keynoteでslideshare
 
Lambda and rundeck
Lambda and rundeckLambda and rundeck
Lambda and rundeck
 
Mining of massive datasets chapter3
Mining of massive datasets chapter3Mining of massive datasets chapter3
Mining of massive datasets chapter3
 
業務に活かすデータサイエンスとは?
業務に活かすデータサイエンスとは?業務に活かすデータサイエンスとは?
業務に活かすデータサイエンスとは?
 
日本の伝統色
日本の伝統色日本の伝統色
日本の伝統色
 
Ubuntuで最新パッケージを導入
Ubuntuで最新パッケージを導入Ubuntuで最新パッケージを導入
Ubuntuで最新パッケージを導入
 
Zshでデキるプロンプト
ZshでデキるプロンプトZshでデキるプロンプト
Zshでデキるプロンプト
 
配列数式
配列数式配列数式
配列数式
 
ランダム・シャッフル
ランダム・シャッフルランダム・シャッフル
ランダム・シャッフル
 
Zipf分布に従う乱数の生成方法
Zipf分布に従う乱数の生成方法Zipf分布に従う乱数の生成方法
Zipf分布に従う乱数の生成方法
 
円錐曲線の極座標表示
円錐曲線の極座標表示円錐曲線の極座標表示
円錐曲線の極座標表示
 

Gnuplotあれこれ

  • 2. Gnuplot あれこれ 私の備忘録も兼ねて OS は Ubuntu 12.04(Quantal Quetzal) だとします 他の資料とカブっている所もあるけど、キニシナイ 2 / 28
  • 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
  • 7. マニュアルの日本語化(1) 日本語マニュアルは新潟工科大学情報電子工学科竹野研究 室の gnuplot のページで公開されています いつまでも頼るわけにはいかないし、作ってみよう しかし、問題が山積み pdfLATEX でコンパイルするようになっている しかし pdfLATEX は日本語化されていない グラフィックスタイルファイルが無い hyperlink がうまく作れない pdfLATEX でないと、文中のハイパーリンクが作れない なんとか pLATEX で頑張ってみよう 7 / 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
  • 10. Excelっぽいグラフ(1) gnuplot で(3次元棒グラフを除く)大抵のグラフを綺麗に 描ける しかし、Excel2010 のグラフも(色使いとか)意外と好き gnuplot で Excelっぽいグラフを描くスクリプトを作ろう sample.gnu(ターミナルとグラフのサイズ) set terminal wxt size 1000,620 # set terminal postscript eps color # set output "sample.eps" # set terminal pngcairo size 1000,620 # set output "sample.png" set size ratio 0.62 ターミナルは3種類あれば十分だろう wxt(Xの画面)・postscript(eps)・pngcairo(png) ターミナルのついでにサイズも指定している postscript でサイズを指定すると何故か上手く作れない 10 / 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
  • 14. Excelっぽいグラフ(4) sample.gnu color(i) = (i%6==0?0x4f81bd:(i%6==1?0xc0504d:(i%6==2?0x9bbb59: (i%6==3?0x8064a2:(i%6==4?0x4bacc6:0xf79646))))) plot for [i=0:21] ’immigration.dat’ using 0:i+2:xticlabels(1) title columnheader(i+2) @linepoint @ptypeFV color(i) 線の色 msoThemeColorAccent1∼6 の6色を使いたい gnuplot は関数が定義できるので、i の値で判断 3項演算子を使った汚い実装 いよいよ、プロット for [i=0:21] で、以降は for 文でぐるぐる回る using は xの列:yの列:オプション という意味 オプションに 16 進数を入れて linecolor rgb variable とすれば、 ここで線の色を指定することも出来る しかし、上記だと lines が上手く設定できない ここは、xticlabels(1) でx軸のラベルをデータの1列目に設定 title columnheader(i+2) で、凡例に出る名前を設定 マクロは名前に @ をつける 線の色を color() 関数で設定 14 / 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
  • 16. 日本語のタイトル(1) gnuplot は日本語の出力ができます ただし(当然)日本語のフォントを指定しなければダメ ということで、フォントの問題になる wxt, pngcairo ターミナルの場合 fc-list で出てくるフォントが設定できる ghostscript のフォントも使える /etc/ghostscritp/cidfmap.d 参照 デフォルトは Sans Ubuntu の場合、普通は日本語フォントが設定されているの で、何も考えなくても日本語が表示できてしまう 例えばこのように設定する set terminal wxt size 1000,620 font ”VL PGothic” 問題は postscript ターミナルの場合 16 / 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
  • 19. 日本語のタイトル(4) pngcairo ターミナルで VL ゴシックフォントを出力したもの 個人的には VL ゴシックがとても好き 19 / 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