Rによるポストスクリプト画像のLaTeXでの利用
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
//間瀬茂
COLOR(red){SIZE(30){R による EPS 画像の作成とその LATEX ...
#contents
R のグラフィックスを適当な画像形式で保存する基本は COLOR(...
*R でポストスクリプト画像を作る方法 [#b62bec60]
R のポストスクリプトデバイス postscript() 関数で作った EP...
data(Titanic)
# ポストスクリプトデバイスを開く。出力 EPS ファイル名を...
# horizontal=FALSE を指定しないと、LATEX に取り込んだ時...
# オプション onefile = FALSE, paper = special は真正の e...
# height = 9, width = 9 は画像のサイズ
# LATEX で表示サイズは後から変えられるので適当で良い
postscript("mosaicplot.eps", horizontal = FALSE, onefile...
paper = "special", height = 9, width = 9)
mosaicplot(Titanic, main = "Survival on the Titanic", co...
dev.off() # 必要な出力がすべて終ったら、すぐにデバイス...
いろいろ試した結果、次のやりかたがベターと気づきました。...
X11() 画面と別のデバイスに同時に出力できます(2004/5/14)
op <- par(no.readonly = TRUE) # 現在の作図パラメータを退...
par(bg = "gray94") # 薄いグレイの背景色
# まず既定の X11 デバイスへ出力
data(Titanic)
mosaicplot(Titanic, main = "Survival on the Titanic", co...
# これで良しとなったら、上の作図手順を変数 pp に記録
pp = recordPlot() # 引数なしに注意
# 新しいデバイスを開く(出力 postscript デバイスを指定、...
# horizontal=FALSE を指定しないと、LATEX に取り込んだ時...
postscript("mosaicplot.eps", horizontal = FALSE, onefile...
paper = "special", height = 9, width = 9)
# postscript デバイスに作図し直す
replayPlot(pp)
dev.off() # 必要な出力がすべて終ったら、すぐにデバイスを...
# 終了時に元の作図パラメータを復帰する
par(op)
# 関数中では on.exit 関数を使うと途中でエラーが起きても...
on.exit(par(op))
もう一つのやりかたは、X11 デバイスに表示した後
dev.copy2eps(file="ファイル名")
でその内容を EPS ファイルに落すことです。追加の引数を指...
//2006-12-9(Sat)さとう
**おまけ(グラフ内の日本語表示について) [#h08587e8]
日本語表示をするために、
X11デバイスへの出力には
> options(X11fonts = c("-*-gothic-%s-%s-normal--%d-*-*-*...
としておいて、
> plot(適当な引数)
日本語表示のためにpostscript(EPS画像ファイル)への出力には、
> postscript("output.eps",family="Japan1Ryumin")
としておいて、
> plot(適当な引数)
> dev.off()
*LaTeX に EPS 画像を取り込む [#m1ac5386]
\documentclass[a4]{jarticle}
\usepackage{graphicx} % EPS 画像を取り込むためのおまじ...
\begin{document}
......................................
\begin{figure}[ht]
\begin{center} % 一つのEPS画像を表示
\includegraphics*[
bb=18 72 594 720, % EPS 画像ファイルの boundingbox 値 ...
trim=10 10 15 10, clip, % 左下右上(この順)から指定量...
width=0.5\linewidth, % 画像の横サイズ指定 (指定し...
height=0.45\textheight, % 画像の縦サイズ指定 (同上)
clip]{foo.eps} % EPS 画像ファイル名 (余計な余白をつかな...
\vspace{-5mm} % 図とキャプションとの隙間調整
\caption{foo の図} % 図のキャプション
\label{figure:foo} % 参照用ラベル (後で「第\ref{...
\end{center}
\end{figure}
...........................................
\end{document}
**画像を切り詰めるには [#ddd8a98e]
画像に含まれた枠等の余分なものは、例えば COLOR(magenta){E...
2004-11-22 TK 追記:COLOR(red){includegraphics[trim=<左下...
**画像のサイズの指定 [#n1c230af]
なお COLOR(red){width} と COLOR(red){height} はどちらか一...
2004-11-22 TK 追記:縦横の比率を保った拡大縮小はCOLOR(red...
**バウンディングボックスの値は [#y08bd410]
バウンディングボックスの値は EPS ファイルの先頭に次のよう...
%!PS-Adobe-3.0
%%DocumentNeededResources: font Helvetica
%%+ font Helvetica-Bold
%%+ font Helvetica-Oblique
%%+ font Helvetica-BoldOblique
%%+ font Symbol
%%DocumentMedia: letter 612 792 0 () ()
%%Title: R Graphics Output
%%Creator: R Software
%%Pages: (atend)
%%Orientation: Landscape
%%BoundingBox: 18 18 594 774
%%EndComments
(以下略)
追記2010.04.09 Unix には BoundingBox の値を画像ファイルか...
[[参考2 R によるpdf画像のLaTeXでの利用:http://www.okada.j...
Unix系だとgrepがあるので特別なプログラムは不要。
$ grep Box hoge.eps
%%BoundingBox: 0 0 504 504
pdfファイルの場合も同様。
$ strings hoge.pdf |grep Box
/MediaBox [0 0 504 792]
*複数の EPS 画像を取り込む [#cb8296f7]
**EPS 画像を横に二つ並べて表示する [#h5f5c04f]
\begin{figure}[ht]
\begin{center}
\begin{tabular}{@{}c@{}c@{}} % 二つのEPS画像を横に並べ...
\includegraphics*[ % 一つ目の画像
bb=18 72 594 720, trim=10 10 15 10, clip,
width=0.5\linewidth, height=0.45\textheight, clip]{foo1....
&
\includegraphics*[ % 二つめの画像
bb=18 72 594 720, trim=10 10 15 10, clip,
width=0.5\linewidth, height=0.45\textheight, clip]{foo2....
\end{tabular}
\vspace{-5mm}
\caption{foo1(左) と foo2(右) の図}
\end{center}
\end{figure}
**EPS 画像を四つ表示する [#z857aff2]
\begin{figure}[ht]
\begin{center}
\begin{tabular}{@{}c@{}c@{}}
\includegraphics*[ % 一つ目の画像
bb=18 72 594 720, trim=10 10 15 10, clip,
width=0.5\linewidth, height=0.45\textheight, clip]{foo1...
&
\includegraphics*[ % 二つ目の画像
bb=18 72 594 720, trim=10 10 15 10, clip,
width=0.5\linewidth, height=0.45\textheight, clip]{foo2....
\\
\includegraphics*[ % 三つ目の画像
bb=18 72 594 720, trim=10 10 15 10, clip,
width=0.5\linewidth, height=0.45\textheight, clip]{foo3....
&
\includegraphics*[ % 四つ目の画像
bb=18 72 594 720, trim=10 10 15 10, clip,
width=0.5\linewidth, height=0.45\textheight, clip]{foo4....
\end{tabular}
\vspace{-5mm}
\caption{foo1(上左)、 foo2(上右)、foo3(下左) そして foo4...
\end{center}
\end{figure}
**画像へのLatex構文の重ね書き [#te46eb71]
Rにも凡例(legend)を加える機能があるが、細かい指定は困難か...
[[参考URL:http://www.biwako.shiga-u.ac.jp/sensei/kumazawa...
\begin{overpic}[
bb= 0 0 504 504, trim=30 30 30 50,
width=0.48\linewidth, height=0.48\linewidth,
clip]{abc.eps}
\put(65,35){\tiny
\begin{tabular}[t]{|lcr|} \hline
○:ABC\rule[0pt]{0pt}{5pt} &$=$ & 0 \\
△:DEF\rule[-2pt]{0pt}{5pt} &$=$ & +1 \\\hline
\end{tabular}}
\end{overpic}
テキストや画像を回転したいときは、graphicx.sty に含まれる...
graphicx : \rotatebox[オプション]{angle}{text}
(angle 回転させたい角度)
オプション:
origin=label
labelは c, tl, tr, bl, br のいずれかをとり、それぞ...
中心, 左上, 右上, 左下, 右下を原点として回転します。
x=dimen,y=dimen
この座標を原点に回転します。
units=number
単位系を変えます。例として下の2つは同じです。
\rotatebox[origin=c]{30}{text}
\rotatebox[origin=c,units=6.283185]{0.523583}{text}
参考:この方法は重ねあわせをするため,ドキュメントスタイ...
ずれる可能性がある.適当な配置が決まったら,図だけを1ペ...
出力し,単独の画像ファイルにしてから,それを利用するほう...
latexでPDF画像を利用するには,バウンディングボックスの値...
で確認し\includegraphics命令のオプションとして与える必要...
画像になるため,trimオプションで不要な空白を試行錯誤で取...
**(おまけ) 長いキャプションを入れたい [#wed84f08]
次のように幅を指定した tabular 環境を使用する(オプション ...
\caption{
\begin{tabular}[t]{p{0.8\linewidth}} % 見栄えの良い長...
これはとってもとってもとってもとってもとってもとっても...
\end{tabular}
}
2004-11-22 TK 追記:次のようにするのが素直な方法かもしれ...
\caption{\vtop{\hsize=<幅><キャプション>}}
たとえば
\caption{\vtop{\hsize=30zw% 全角30文字
これはとってもとってもとってもとってもとってもとって...
幅は現在のフォントで全角三十文字としたので,一行にち...
だけれども,句読点を追い込んだり追い出したりする処理...
ないかもしれない.}}
[一読者]これはとっても便利そう。ありがとうございます。1...
追記2010.04.09 hangcaption.sty を使えばキャプションのテキ...
* 関連 [#uf3e82a2]
ツール Sweave を使うと、R コードと LATEX ドキュメントの一...
- [[Sweave:http://www.stat.uni-muenchen.de/~leisch/]]
- [[Sweave 関連情報]]
終了行:
//間瀬茂
COLOR(red){SIZE(30){R による EPS 画像の作成とその LATEX ...
#contents
R のグラフィックスを適当な画像形式で保存する基本は COLOR(...
*R でポストスクリプト画像を作る方法 [#b62bec60]
R のポストスクリプトデバイス postscript() 関数で作った EP...
data(Titanic)
# ポストスクリプトデバイスを開く。出力 EPS ファイル名を...
# horizontal=FALSE を指定しないと、LATEX に取り込んだ時...
# オプション onefile = FALSE, paper = special は真正の e...
# height = 9, width = 9 は画像のサイズ
# LATEX で表示サイズは後から変えられるので適当で良い
postscript("mosaicplot.eps", horizontal = FALSE, onefile...
paper = "special", height = 9, width = 9)
mosaicplot(Titanic, main = "Survival on the Titanic", co...
dev.off() # 必要な出力がすべて終ったら、すぐにデバイス...
いろいろ試した結果、次のやりかたがベターと気づきました。...
X11() 画面と別のデバイスに同時に出力できます(2004/5/14)
op <- par(no.readonly = TRUE) # 現在の作図パラメータを退...
par(bg = "gray94") # 薄いグレイの背景色
# まず既定の X11 デバイスへ出力
data(Titanic)
mosaicplot(Titanic, main = "Survival on the Titanic", co...
# これで良しとなったら、上の作図手順を変数 pp に記録
pp = recordPlot() # 引数なしに注意
# 新しいデバイスを開く(出力 postscript デバイスを指定、...
# horizontal=FALSE を指定しないと、LATEX に取り込んだ時...
postscript("mosaicplot.eps", horizontal = FALSE, onefile...
paper = "special", height = 9, width = 9)
# postscript デバイスに作図し直す
replayPlot(pp)
dev.off() # 必要な出力がすべて終ったら、すぐにデバイスを...
# 終了時に元の作図パラメータを復帰する
par(op)
# 関数中では on.exit 関数を使うと途中でエラーが起きても...
on.exit(par(op))
もう一つのやりかたは、X11 デバイスに表示した後
dev.copy2eps(file="ファイル名")
でその内容を EPS ファイルに落すことです。追加の引数を指...
//2006-12-9(Sat)さとう
**おまけ(グラフ内の日本語表示について) [#h08587e8]
日本語表示をするために、
X11デバイスへの出力には
> options(X11fonts = c("-*-gothic-%s-%s-normal--%d-*-*-*...
としておいて、
> plot(適当な引数)
日本語表示のためにpostscript(EPS画像ファイル)への出力には、
> postscript("output.eps",family="Japan1Ryumin")
としておいて、
> plot(適当な引数)
> dev.off()
*LaTeX に EPS 画像を取り込む [#m1ac5386]
\documentclass[a4]{jarticle}
\usepackage{graphicx} % EPS 画像を取り込むためのおまじ...
\begin{document}
......................................
\begin{figure}[ht]
\begin{center} % 一つのEPS画像を表示
\includegraphics*[
bb=18 72 594 720, % EPS 画像ファイルの boundingbox 値 ...
trim=10 10 15 10, clip, % 左下右上(この順)から指定量...
width=0.5\linewidth, % 画像の横サイズ指定 (指定し...
height=0.45\textheight, % 画像の縦サイズ指定 (同上)
clip]{foo.eps} % EPS 画像ファイル名 (余計な余白をつかな...
\vspace{-5mm} % 図とキャプションとの隙間調整
\caption{foo の図} % 図のキャプション
\label{figure:foo} % 参照用ラベル (後で「第\ref{...
\end{center}
\end{figure}
...........................................
\end{document}
**画像を切り詰めるには [#ddd8a98e]
画像に含まれた枠等の余分なものは、例えば COLOR(magenta){E...
2004-11-22 TK 追記:COLOR(red){includegraphics[trim=<左下...
**画像のサイズの指定 [#n1c230af]
なお COLOR(red){width} と COLOR(red){height} はどちらか一...
2004-11-22 TK 追記:縦横の比率を保った拡大縮小はCOLOR(red...
**バウンディングボックスの値は [#y08bd410]
バウンディングボックスの値は EPS ファイルの先頭に次のよう...
%!PS-Adobe-3.0
%%DocumentNeededResources: font Helvetica
%%+ font Helvetica-Bold
%%+ font Helvetica-Oblique
%%+ font Helvetica-BoldOblique
%%+ font Symbol
%%DocumentMedia: letter 612 792 0 () ()
%%Title: R Graphics Output
%%Creator: R Software
%%Pages: (atend)
%%Orientation: Landscape
%%BoundingBox: 18 18 594 774
%%EndComments
(以下略)
追記2010.04.09 Unix には BoundingBox の値を画像ファイルか...
[[参考2 R によるpdf画像のLaTeXでの利用:http://www.okada.j...
Unix系だとgrepがあるので特別なプログラムは不要。
$ grep Box hoge.eps
%%BoundingBox: 0 0 504 504
pdfファイルの場合も同様。
$ strings hoge.pdf |grep Box
/MediaBox [0 0 504 792]
*複数の EPS 画像を取り込む [#cb8296f7]
**EPS 画像を横に二つ並べて表示する [#h5f5c04f]
\begin{figure}[ht]
\begin{center}
\begin{tabular}{@{}c@{}c@{}} % 二つのEPS画像を横に並べ...
\includegraphics*[ % 一つ目の画像
bb=18 72 594 720, trim=10 10 15 10, clip,
width=0.5\linewidth, height=0.45\textheight, clip]{foo1....
&
\includegraphics*[ % 二つめの画像
bb=18 72 594 720, trim=10 10 15 10, clip,
width=0.5\linewidth, height=0.45\textheight, clip]{foo2....
\end{tabular}
\vspace{-5mm}
\caption{foo1(左) と foo2(右) の図}
\end{center}
\end{figure}
**EPS 画像を四つ表示する [#z857aff2]
\begin{figure}[ht]
\begin{center}
\begin{tabular}{@{}c@{}c@{}}
\includegraphics*[ % 一つ目の画像
bb=18 72 594 720, trim=10 10 15 10, clip,
width=0.5\linewidth, height=0.45\textheight, clip]{foo1...
&
\includegraphics*[ % 二つ目の画像
bb=18 72 594 720, trim=10 10 15 10, clip,
width=0.5\linewidth, height=0.45\textheight, clip]{foo2....
\\
\includegraphics*[ % 三つ目の画像
bb=18 72 594 720, trim=10 10 15 10, clip,
width=0.5\linewidth, height=0.45\textheight, clip]{foo3....
&
\includegraphics*[ % 四つ目の画像
bb=18 72 594 720, trim=10 10 15 10, clip,
width=0.5\linewidth, height=0.45\textheight, clip]{foo4....
\end{tabular}
\vspace{-5mm}
\caption{foo1(上左)、 foo2(上右)、foo3(下左) そして foo4...
\end{center}
\end{figure}
**画像へのLatex構文の重ね書き [#te46eb71]
Rにも凡例(legend)を加える機能があるが、細かい指定は困難か...
[[参考URL:http://www.biwako.shiga-u.ac.jp/sensei/kumazawa...
\begin{overpic}[
bb= 0 0 504 504, trim=30 30 30 50,
width=0.48\linewidth, height=0.48\linewidth,
clip]{abc.eps}
\put(65,35){\tiny
\begin{tabular}[t]{|lcr|} \hline
○:ABC\rule[0pt]{0pt}{5pt} &$=$ & 0 \\
△:DEF\rule[-2pt]{0pt}{5pt} &$=$ & +1 \\\hline
\end{tabular}}
\end{overpic}
テキストや画像を回転したいときは、graphicx.sty に含まれる...
graphicx : \rotatebox[オプション]{angle}{text}
(angle 回転させたい角度)
オプション:
origin=label
labelは c, tl, tr, bl, br のいずれかをとり、それぞ...
中心, 左上, 右上, 左下, 右下を原点として回転します。
x=dimen,y=dimen
この座標を原点に回転します。
units=number
単位系を変えます。例として下の2つは同じです。
\rotatebox[origin=c]{30}{text}
\rotatebox[origin=c,units=6.283185]{0.523583}{text}
参考:この方法は重ねあわせをするため,ドキュメントスタイ...
ずれる可能性がある.適当な配置が決まったら,図だけを1ペ...
出力し,単独の画像ファイルにしてから,それを利用するほう...
latexでPDF画像を利用するには,バウンディングボックスの値...
で確認し\includegraphics命令のオプションとして与える必要...
画像になるため,trimオプションで不要な空白を試行錯誤で取...
**(おまけ) 長いキャプションを入れたい [#wed84f08]
次のように幅を指定した tabular 環境を使用する(オプション ...
\caption{
\begin{tabular}[t]{p{0.8\linewidth}} % 見栄えの良い長...
これはとってもとってもとってもとってもとってもとっても...
\end{tabular}
}
2004-11-22 TK 追記:次のようにするのが素直な方法かもしれ...
\caption{\vtop{\hsize=<幅><キャプション>}}
たとえば
\caption{\vtop{\hsize=30zw% 全角30文字
これはとってもとってもとってもとってもとってもとって...
幅は現在のフォントで全角三十文字としたので,一行にち...
だけれども,句読点を追い込んだり追い出したりする処理...
ないかもしれない.}}
[一読者]これはとっても便利そう。ありがとうございます。1...
追記2010.04.09 hangcaption.sty を使えばキャプションのテキ...
* 関連 [#uf3e82a2]
ツール Sweave を使うと、R コードと LATEX ドキュメントの一...
- [[Sweave:http://www.stat.uni-muenchen.de/~leisch/]]
- [[Sweave 関連情報]]
ページ名: