eps ファイルをいじろう！

### はじめに
eps (**E**ncapsulated **P**ost**S**cript) ファイルは画像形式の一つです。[Wikipedia](https://ja.wikipedia.org/wiki/Encapsulated_PostScript) によると、eps ファイル postscript という言語ベースのものだとか。すなわち、postscript さえ読み書きできれば、eps ファイルは作成や編集ができるわけです。

**postscript なんか習ってねーよっ！** と思われるかもしれません。しかし、Gnuplot を用いてグラフ作成に勤しむ学生には、知っておいたほうがいいのも事実です。そこで、Gnuplot ユーザーに贈る「最低限、大学生レベル・大学院生レベルで必要なポイント」をお伝えしようと思います。なお、Python やフリーの eps 変換ソフトにて作成された eps は、僕もわかりません。ここではあくまで **Gnuplot にて作成した eps に限る**こととします。

### eps をいじろう
では、eps を編集しましょう。普段は GSView にて eps ファイルを閲覧していると思いますが、今回は 右クリック → プログラムから開く を行い、メモ帳（または、秀丸）で開きましょう。テキストエディタという言葉を知っているなら、テキストエディタで開きましょう、と言った方がいいかもしれませんね。
今回は、以下のようなデータをもとに、編集をしてみようと思います。Excel がランダムな数字を作ってくれました。Excel ありがとう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2536951/c584fe99-eb14-59ee-e144-4519941c8892.png)



ちなみに、こちらを作成したときの gp ファイルは以下です。
```fortran
reset
cd 'C:\Users\username\Desktop'
set terminal postscript eps enhanced color "TimesNewRoman" 28
set output "ex.eps"
set key below
set xlabel "Random Num, {/TimesNewRoman-Italic n} (-)"
set ylabel "Y jikudayo, {/TimesNewRoman-Italic y} (-)"
set tmargin 2
plot "ex.txt" using 1:2 with points lc "web-green" pt 7 ps 1.5 title "rand data"
```

#### ラベルを編集する
ここではラベル名の編集を考えましょう。ラベル名を書いている箇所を探します。メモ帳で、ctrl + F (command + F) をします。以後、この処理を検索と呼びます。基本、目視で探すより検索したほうが早いです。すると、僕は 770 行目付近にラベル名の処理が出てきました。ここでは視認性のため、Atom というソフトウェアを使って、テキストに色を付けたものを載せます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2536951/a552cb37-f496-6d92-5c9c-e868e04059eb.png)
ここで、770 行目～ 774 行目にあるのが **Random Num, _n_ (-) という x 軸のラベルを記述している箇所です。**
ここで覚えておきたいのは以下の 5 つです。（多い…）
1.  (TimesNewRoman) と (TimesNewRoman-Italic) の部分。これはフォントであり、他に Symbol などが使えます。ギリシャ文字は Symbol で記述できるので、多分 Times か Symbol が皆さんが使うフォントでしょう。
1.  (Random Num, ) や (n)、(\(-\)) の箇所。ここはテキストを表します。一見、(\(-\)) は何を書いているのか分かりにくいかと思います。これは、\( の 2 文字で ( を、\) の2 文字で ) を表しているのです。なぜそんな事をするのかというと、文法上のカッコなのか、テキストとして記述したいカッコなのかの区別のためです。これを専門用語ではエスケープシーケンスと言います。ググるときの参考にしてください。
1.  280.0 0.0 のところをいじると、文字の大きさを変えられます。上付きや下付き文字にすることも可能です。ただし、eps から編集するより、gp ファイルで予め記述するほうが楽です。gp ファイルで e^{2x} みたいに書くと、2x の部分が上付きに、X_{0} みたいに書くと、0 のところが下付きになります。
1.  770 行目の 4033 476 M はテキストの座標を表します。4033 が x 座標で 476 が y 座標です。
1.  他は基本いじらない！！（下手にいじると、開けなくなります）

#### 凡例をいじりたい
次は凡例です。ここですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2536951/6ec12aba-861f-5f72-b7d7-10c5e6c24ccd.png)


さて、下にあるのは見にくいので、グラフエリアの上に持っていってみましょう。実はそのために、gp ファイルにて上の余白を作っておきました（tmargin のところ）。もちろん今回のような図では、右上で良いのですが、まあ、練習ということで。では、rand で検索して場所を探しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2536951/9a9b2875-3f3f-6b2e-60ba-88fd70761152.png)
ここですね。ラベルの編集でお伝えしたのと同様に、783 行目は座標を表しています。すなわち、203 という y 座標を 大きくしてやれば、rand data という文字は上に移動します（変更後、保存してくださいね）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2536951/2e027518-2f7b-dac3-6bf5-7f61d0787641.png)

しかし、これでは終われません。そう、下にまだ凡例のプロットが残っています。これも移動しましょう。
改めて上の写真を見てください。791 行目以降から、数字と CircleF とい文字が続いています。これ、実は**プロットの情報を表しています。** 具体的には、790 行目でプロットのカラーを、791 行目以降、２つの数字は座標を、CircleF はプロットの種類を表しています。プロットの色や種類を変えるとき、理論的にはこちらからプロットの種類を変更できますが、面倒なので、Gnuplot で作り直すことを推奨します。
さて、話がそれました。凡例のプロットは、実は 791 行目から続くような**プロットのデータの一番下に必ずあります。** 下の写真では、891 行目でした。
!![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2536951/79e19b5c-bf3d-b958-9efa-0fa355b8976d.png)
4789 203 CircleF の y 座標を**ラベルと同じ y 座標に変更します。** ここでは、4703 としました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2536951/83a96e1b-1ada-0142-86d3-a99d3218a326.png)
無事移動できました！ちなみに、プロットするデータが複数ある時、% End plot #1 と書かれたコメントの下に、2 つめのプロットが始まります。

#### テキストを追加したい
例えばグラフエリアに決定係数を書くなど、新しくテキストだけを追加したいケースも考えられます。では、ラベル名の箇所を見てみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2536951/14815398-1255-c7e9-db59-a30bde081e7d.png)
770 行目～ 774 行目がラベル名を表しているのでした。これでもってテキストを表せるのです。すなわち、**同じようなのを書き足してやれば、テキストを追加できます。** やってみましょう。
770 行目～ 774 行目をコピペして、774 行目と 775 行目の間に入れます。そして、決定係数を入れましょう。僕は以下のようにしました。きちんと入っていますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2536951/af865591-a7e5-fd35-82fb-74205c05c168.png)

最後に、完成した図を見てみましょう。お疲れさまでした！！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2536951/9379ce70-5b91-4139-d9af-c386453cf484.png)

### おまけ
1. 本記事では参考にはしていませんが、「eps 書き方」などでググると諸先輩方の eps グラフィック講座を閲覧できます。
1. テキストエディタ Atom では、postscript を色を付けて見れます（僕の載せている写真です）。Atom はフリーでダウンロードできます。Atom ダウンロード後に「language-postscript」というパッケージをダウンロードすると、色を付けて postscript を見ることができるようになります。研究室の人は、Atom もフリーソフトであるので、研究室の PC に入れたいときは、先生に確認してくださいね。