SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

量子プログラミング入門
量子プログラミング入門量子プログラミング入門
量子プログラミング入門Katsuya Ito
 
LLMとプランニングの世界
LLMとプランニングの世界LLMとプランニングの世界
LLMとプランニングの世界Carnot Inc.
 
PIXTA_シードラウンド用事業プラン説明資料
PIXTA_シードラウンド用事業プラン説明資料PIXTA_シードラウンド用事業プラン説明資料
PIXTA_シードラウンド用事業プラン説明資料Find Job Startup
 
Bitcoinを技術的に理解する
Bitcoinを技術的に理解するBitcoinを技術的に理解する
Bitcoinを技術的に理解するKenji Urushima
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムTakuya Akiba
 
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能MITSUNARI Shigeo
 
論理と計算のしくみ 5.3 型付きλ計算 (前半)
論理と計算のしくみ 5.3 型付きλ計算 (前半)論理と計算のしくみ 5.3 型付きλ計算 (前半)
論理と計算のしくみ 5.3 型付きλ計算 (前半)Lintaro Ina
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Yuya Unno
 
自己紹介用プレゼン
自己紹介用プレゼン自己紹介用プレゼン
自己紹介用プレゼンKatsuhisa Maeda
 
学生のためのAI豆知識
学生のためのAI豆知識学生のためのAI豆知識
学生のためのAI豆知識Rei Sasaki
 
機械翻訳 (MT) の品質評価を考える | 第29回 JTF翻訳祭2019@パシフィコ横浜
機械翻訳 (MT) の品質評価を考える | 第29回 JTF翻訳祭2019@パシフィコ横浜機械翻訳 (MT) の品質評価を考える | 第29回 JTF翻訳祭2019@パシフィコ横浜
機械翻訳 (MT) の品質評価を考える | 第29回 JTF翻訳祭2019@パシフィコ横浜Takeshi Hayakawa
 
「ランダムフォレスト回帰」のハイパーパラメーター
「ランダムフォレスト回帰」のハイパーパラメーター「ランダムフォレスト回帰」のハイパーパラメーター
「ランダムフォレスト回帰」のハイパーパラメーターJun Umezawa
 
優れた研究論文の書き方―7つの提案
優れた研究論文の書き方―7つの提案優れた研究論文の書き方―7つの提案
優れた研究論文の書き方―7つの提案Masanori Kado
 
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識Tsutomu Sogitani
 
フーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組みフーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組みyuichi takeda
 
エントリー層向けセミナー#04『はじめての最適化』
エントリー層向けセミナー#04『はじめての最適化』エントリー層向けセミナー#04『はじめての最適化』
エントリー層向けセミナー#04『はじめての最適化』The Japan DataScientist Society
 

La actualidad más candente (20)

量子プログラミング入門
量子プログラミング入門量子プログラミング入門
量子プログラミング入門
 
LLMとプランニングの世界
LLMとプランニングの世界LLMとプランニングの世界
LLMとプランニングの世界
 
PIXTA_シードラウンド用事業プラン説明資料
PIXTA_シードラウンド用事業プラン説明資料PIXTA_シードラウンド用事業プラン説明資料
PIXTA_シードラウンド用事業プラン説明資料
 
Bitcoinを技術的に理解する
Bitcoinを技術的に理解するBitcoinを技術的に理解する
Bitcoinを技術的に理解する
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
 
論理と計算のしくみ 5.3 型付きλ計算 (前半)
論理と計算のしくみ 5.3 型付きλ計算 (前半)論理と計算のしくみ 5.3 型付きλ計算 (前半)
論理と計算のしくみ 5.3 型付きλ計算 (前半)
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
 
自己紹介用プレゼン
自己紹介用プレゼン自己紹介用プレゼン
自己紹介用プレゼン
 
学生のためのAI豆知識
学生のためのAI豆知識学生のためのAI豆知識
学生のためのAI豆知識
 
機械翻訳 (MT) の品質評価を考える | 第29回 JTF翻訳祭2019@パシフィコ横浜
機械翻訳 (MT) の品質評価を考える | 第29回 JTF翻訳祭2019@パシフィコ横浜機械翻訳 (MT) の品質評価を考える | 第29回 JTF翻訳祭2019@パシフィコ横浜
機械翻訳 (MT) の品質評価を考える | 第29回 JTF翻訳祭2019@パシフィコ横浜
 
「ランダムフォレスト回帰」のハイパーパラメーター
「ランダムフォレスト回帰」のハイパーパラメーター「ランダムフォレスト回帰」のハイパーパラメーター
「ランダムフォレスト回帰」のハイパーパラメーター
 
優れた研究論文の書き方―7つの提案
優れた研究論文の書き方―7つの提案優れた研究論文の書き方―7つの提案
優れた研究論文の書き方―7つの提案
 
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
 
フーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組みフーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組み
 
エントリー層向けセミナー#04『はじめての最適化』
エントリー層向けセミナー#04『はじめての最適化』エントリー層向けセミナー#04『はじめての最適化』
エントリー層向けセミナー#04『はじめての最適化』
 
機械学習と主成分分析
機械学習と主成分分析機械学習と主成分分析
機械学習と主成分分析
 
固有表現抽出と適用例のご紹介
固有表現抽出と適用例のご紹介固有表現抽出と適用例のご紹介
固有表現抽出と適用例のご紹介
 
Mean Teacher
Mean TeacherMean Teacher
Mean Teacher
 
暗認本読書会5
暗認本読書会5暗認本読書会5
暗認本読書会5
 

Similar 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
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門Shiqiao Du
 
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
 

Similar 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
 
どこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティスどこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティス
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
 
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
 

Más 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
 

Más 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