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


添付ファイル: filePalatino.png 2483件 [詳細] fileHelvetica.png 2351件 [詳細] fileHelvetica-Narrow.png 2996件 [詳細] filegray-pie.png 2460件 [詳細] filenegate.png 1532件 [詳細] fileURWPalladio.png 2389件 [詳細] fileURWGothic.png 2394件 [詳細] fileComputerModern.png 2385件 [詳細] fileNimbusSan.png 2355件 [詳細] filecolor-pie.png 2429件 [詳細] fileNewCenturySchoolbook.png 2395件 [詳細] fileAvantGarde.png 2694件 [詳細] fileURWBookman.png 2348件 [詳細] fileBookman.png 2644件 [詳細] fileblue-pie.png 2422件 [詳細] fileNimbusRom.png 2367件 [詳細] fileCourier.png 2365件 [詳細] fileCenturySch.png 2391件 [詳細] filepointsize.png 2853件 [詳細] fileNimbusMon.png 2375件 [詳細] fileTimes.png 2528件 [詳細] fileNimbusSanCond.png 2331件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-03-25 (土) 11:19:17