EPS形式の出力

ここではグラフィックウィンドウに描画されているグラフを EPS 形式で出力する際のオプションの実際を紹介します。eps ファイルの加工方法についてはこちら。作成したepsファイルをLaTeXに取り込む方法は、こちら


EPS形式の出力コマンド

> dev.copy2eps(file="ファイル名.eps")

表示されているグラフィックが EPSF 形式で保存されます。dev.copy2epsは内部的に、

> dev.copy(device=postscript,file="ファイル名.eps", onefile=FALSE,horizontal=FALSE,paper=special)

と同じことをしている。いちいちオプションを指定するのは面倒なので、dev.copy2epsを使った方が楽。

出力サイズ指定

> dev.copy2eps(file="ファイル名.eps",width=数値,height=数値)

幅や高さを指定できる。幅と高さのどちらか一方のみを指定すると、コピー元のアスペクト比で他方を自動的に決定してくれる。指定する数値の単位はインチ。
横幅を4インチにする場合

> dev.copy2eps(file="width-test.eps",width=4)

フォント指定

> dev.copy2eps(file="ファイル名.eps",family="フォント名")

指定できるフォント(オリジナル版R)

標準ポストスクリプトフォントAvantGarde?
Bookman
Courier
Helvetica
Helvetica-Narrow
NewCenturySchoolbook?
Palatino
Times
URWフォントURWGothic
URWBookman
NimbusMon?
NimbusSan?
NimbusSanCond?
CenturySch?
URWPalladio
NimbusRom?
その他ComputerModern?

表示例

epsfont <- function(x) {
  plot(0:2,0:2,type="n",axes=FALSE,xlab="",ylab="")
  text(0,1.9,x,cex=5,font=1,pos=4) #標準
  text(0,1.6,x,cex=5,font=2,pos=4) #太字
  text(0,1.3,x,cex=5,font=3,pos=4) #斜体
  text(0,1,x,cex=5,font=4,pos=4)   #太字斜体
  text(0,0.7,"0123456789",cex=3,pos=4)
  dev.copy2eps(file=paste(x,".eps",sep=''),family=x)
  system(paste("convert -trim ",x,".eps ",x,".png",sep='')) #ImageMagickのtrimオプションを使う
}

このepsfont()を使って表示してみる。

AvantGarde?

> epsfont("AvantGarde")
AvantGarde.png

Bookman

> epsfont("Bookman")
Bookman.png

Courier

> epsfont("Courier")
Courier.png

Helvetica

familyを無指定の時に適用されるデフォルトのフォント

> epsfont("Helvetica")
Helvetica.png

Helvetica-Narrow

> epsfont("Helvetica-Narrow")
Helvetica-Narrow.png

NewCenturySchoolbook?

> epsfont("NewCenturySchoolbook")
NewCenturySchoolbook.png

Palatino

> epsfont("Palatino")
Palatino.png

Times

> epsfont("Times")
Times.png

URWGothic

> epsfont("URWGothic")
URWGothic.png

URWBookman

> epsfont("URWBookman")
URWBookman.png

NimbusMon?

> epsfont("NimbusMon")
NimbusMon.png

NimbusSan?

> epsfont("NimbusSan")
NimbusSan.png

NimbusSanCond?

> epsfont("NimbusSanCond")
NimbusSanCond.png

CenturySch?

> epsfont("CenturySch")
CenturySch.png

URWPalladio

> epsfont("URWPalladio")
URWPalladio.png

NimbusRom?

> epsfont("NimbusRom")
NimbusRom.png

ComputerModern?

> epsfont("ComputerModern")
ComputerModern.png

pointsizeの指定

点の大きさを指定できる

pointsizeの指定例

pointsize.png

何故だがpointsizeを大きくすると描画領域が小さくなる。

titleの指定

これはグラフィックのmainオプションとは異なり、EPSファイルの中に書き込まれるタイトル。例えば、

> dev.copy2eps(title="ADIS mortality in Honduras")

として、出力されたEPSファイルの中を見ると

%!PS-Adobe-3.0 EPSF-3.0
%%DocumentNeededResources: font Helvetica
%%+ font Helvetica-Bold
%%+ font Helvetica-Oblique
%%+ font Helvetica-BoldOblique
%%+ font Symbol
%%Title: ADIS mortality in Honduras
%%Creator: R Software
%%Pages: (atend)
%%BoundingBox: 0 0 268 263
%%EndComments

となっている。

カラーのグラフィックをグレー階調のepsにする

簡単にグレー階調になってくれないグラフィック関数を使っているとき、グレー階調に指定し直すのに手間がかかるとき、または、カラーとグレー階調のepsを両方とも同時に欲しいとき、dev.copy2epsのfileにパイプを書いて、外部プログラムに処理を渡します。

カラーのepsをグレー階調にするbw_convertというPerlスクリプトがありますが、これは引数に変換元ファイル名を与える必要があり、パイプに対応していません。パイプに対応していないと、dev.copy2eps()からは直接利用できないため、bw_convertのアイデアを拝借して、sedで対応します。

> pie(c(2,10,3),c("S","R","S-plus"))
> dev.copy2eps(file="カラー.eps")
> dev.copy2eps(file="| sed -e 's/\bsetrgbcolor\b/add add 3 div setgray/g' > グレー階調.eps")

color-pie.png gray-pie.png

また、ImageMagick?のconvertを使う方法もあります。

> dev.copy2eps(file="| convert -type Grayscale - グレー階調.eps")

Rによるeps出力は、フォントを埋め込まずベクター形式で、大変軽いファイルになっています。しかし、convertで変換すると、ラスター化されるので、見栄えは似ていますが、ファイルサイズがときに100倍近くにふくれあがるので注意が必要です。

暗色のスライド用に色を変更する

プレゼンテーション用に色を反転させたグラフィックも同時に欲しくなるかもしれません。グレー階調化と同様にsedでepsファイルを編集します。

ここでは、昔懐かしいブルースライドにしてみます。

 > par(bg='white') #背景色設定をepsに入れないと、そもそも背景色の変更ができない
 > pie(c(2,10,3),c("S","R","S-plus"))
 > dev.copy2eps(file="カラー.eps")
 > blue.slide <- paste("| sed -e 's/\\bsetrgbcolor\\b/pop pop pop 0 0 0.6  setrgbcolor/g'",
 +   "-e 's/\\b1 setgray\\b/0 0 0.6 setrgbcolor/g'",
 +   "-e 's/\\b0 setgray\\b/1 setgray/g' > スライド.eps") #長いのでpaste()を使う
 > dev.copy2eps(file=blue.slide)

color-pie.png blue-pie.png


添付ファイル: fileHelvetica.png 1471件 [詳細] fileNimbusRom.png 1517件 [詳細] fileURWGothic.png 1510件 [詳細] fileNimbusSanCond.png 1462件 [詳細] fileURWPalladio.png 1493件 [詳細] filenegate.png 1111件 [詳細] fileTimes.png 1613件 [詳細] fileURWBookman.png 1473件 [詳細] filecolor-pie.png 1545件 [詳細] fileBookman.png 1651件 [詳細] fileblue-pie.png 1547件 [詳細] fileCourier.png 1474件 [詳細] fileComputerModern.png 1522件 [詳細] filegray-pie.png 1530件 [詳細] fileHelvetica-Narrow.png 1878件 [詳細] fileAvantGarde.png 1782件 [詳細] fileNimbusMon.png 1517件 [詳細] fileNimbusSan.png 1492件 [詳細] fileCenturySch.png 1535件 [詳細] fileNewCenturySchoolbook.png 1467件 [詳細] filepointsize.png 1937件 [詳細] filePalatino.png 1517件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Google
WWW を検索 OKADAJP.ORG を検索
Last-modified: 2015-03-01 (日) 01:15:59 (1601d)