虽然发送到PDF的R图可以在插图或页面布局软件中随意重新调整,但科学期刊经常坚持提供的图表具有特定的尺寸。
所有绘图元素的大小是否可以直接在R?
中在给定的PDF大小内缩放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()
答案 0 :(得分:6)
期刊坚持拥有特定的地块尺寸以避免缩放。如果制作,它可以使字体大小太小(或大)并且与图标题字体大小不一致。这就是为什么设计中的绘图元素(文本,点大小等)具有相同的绝对大小,无论PDF大小如何。
您可以更改默认字体大小和磅值,例如:
p <- ggplot(iris, aes(x=Petal.Width, y=Petal.Length, colour=Species)) +
geom_point(size=1.5) + # default is 2
theme_grey(base_size=10) # default is 12
ggsave("test.1.pdf", p)
默认值也可以全局更改:
update_geom_defaults("point", list(size=1.5))
theme_set(theme_grey(base_size=10))
答案 1 :(得分:4)
奇怪的是,您可以使用scale=
ggsave(...)
执行此操作
require(ggplot2)
p <- qplot(data=iris, x=Petal.Width, y=Petal.Length, colour=Species)
ggsave("test.1.pdf",p)
ggsave("test.2.pdf",p, width=3, height=3, units="in", scale=3)
尝试使用scale
参数进行游戏,看看你得到了什么......
答案 2 :(得分:3)
考虑在pdf()函数中使用 width , height 和 pointsize 。
如果你喜欢使用pdf()而不是像使用sweave这样的其他方法,那么你最好使用带有更多参数的pdf函数,比如bellow(我没有安装ggplot2,所以提供了simillar case)。 / p>
# 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将开始强制执行线宽,字体大小等。
查看示例创建的比例* .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()
}
用于测试文件在一个文档中的外观的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}
答案 3 :(得分:0)
与pdf同样好或更好的选项是tiff。我遇到的所有期刊都像tiff。
tiff(filename="name.tiff", width=5, height=5, units="in",
pointsize=8, compression="lzw", bg="white", res=600,
restoreConsole=TRUE)
qplot(data=iris, x=Petal.Width, y=Petal.Length, colour=Species)
dev.off()
如果您使用的是Linux,请删除restoreConsole=TRUE
,似乎只有Windows喜欢这样。