PDF に送信された R プロットは、イラストレーションやページ レイアウト ソフトウェアで自由に再スケールできますが、科学雑誌では、提供されるプロットには特定の寸法が必要であると要求されることがよくあります。
すべてのプロット要素のサイズを、指定された PDF サイズ内で R で直接拡大縮小できますか?
require(ggplot2)
p <- qplot(data=iris,
x=Petal.Width,
y=Petal.Length,
colour=Species)
pdf("./test_plot_default.pdf")
print(p)
graphics.off()
プロット要素の適切なスケーリングを生成する
ただし、PDF のサイズ要素を変更しても、プロット要素は拡大縮小されません。PDF が小さい場合、プロット要素はプロット領域に比べて過度に拡大されます。
pdf("./test_plot_dimentionsions required by journal.pdf", width=3, height=3)
print(p)
graphics.off()
@Rosen Matev の提案を使用します:
update_geom_default("point", list(size=1))
theme_set(theme_grey(base_size=6))
pdf("./test_plot_dimentionsions required by journal.pdf", width=3, height=3)
print(p)
graphics.off()
ベストアンサー1
使用を検討する幅、身長そしてポイントサイズpdf() 関数内。
sweave などの他の方法ではなく、pdf() を使い続ける場合は、以下のように、より多くの引数を持つ pdf 関数を使用する方がよいでしょう (ggplot2 をインストールしていないため、同様のケースが提供されています)。
# making scaled plot in pdf
# using paper=a4 just to see the efect
for (sc in c(0.5,0.75,1)) {
pdf(width=7*sc,height=7*sc,pointsize=12*sc,file=paste("scale",sc,".pdf",sep=""),paper="a4")
plot(sin((1:314)/100),main=paste("PDF sc",sc))
dev.off()
}
かなり使えますが、ある程度しか機能しません。スケールが小さすぎると、pdf は線幅、フォント サイズなどを適用し始めます。
例によって作成された scale*.pdf の結果を参照してください。
ggplot2 の場合...
sc <- c(0.5,0.75,1)
fi <- c("pic1.pdf","pic2.pdf","pic3.pdf")
require(ggplot2)
p <- qplot(data=iris,
x=Petal.Width,
y=Petal.Length,
colour=Species)
for (i in 1:3) {
pdf(width=7*sc[i],height=7*sc[i],pointsize=12*sc[i],file=fi[i])
print(p)
dev.off()
}
ファイルが 1 つのドキュメント内でどのように表示されるかをテストするための LaTeX コード:
\documentclass[a4paper,11pt]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{graphics}
\begin{document}
\begin{figure}
\includegraphics{pic1.pdf}
\end{figure}
\begin{figure}
\includegraphics{pic2.pdf}
\end{figure}
\begin{figure}
\includegraphics{pic3.pdf}
\end{figure}
\end{document}