我想在R中创建一个函数的图形。代码是:
x <- seq(from=0, to=1, by=0.00001)
f <- function(x) ....
y <- f(x)
plot(x, y, xlab="x", ylab="f(x)", pch=16, cex=0.5)
min(y)
[1] 0.2291203
max(y)
[1] 0.7708797
答案 0 :(得分:2)
我无法重现您的错误,所以我猜这是您的系统特有的。如果我保存为eps并将其包含在乳胶中(使用graphicx包),一切都可以正常工作。请记住,如果您在R中使用了postscript()函数,则还必须指定图片的宽度和高度。我可能是错的,但我认为它默认为R中图形窗口的默认值(这可以解释你的eps图片的尺寸)。
如果从图形窗口保存,通常应该采用图形窗口的当前宽度和高度。它在我的R版本上这样做,但也许您的选项设置不同?检查ps.options()并查看宽度和高度是否为0。如果不是这样,则可能是问题。
旁注:您可以使用pdf代替。请参阅R中的?pdf。它允许您指定图片的宽度和高度,并在Latex中正确再现。您应该使用pdftex来构建文件。
我的经验是,使用pdf图形和pdftex比通过PS更麻烦。事实上,在乳胶中,没有必要再通过eps来获得体面的pdf。使用pdftex的另一个好处是,您可以轻松地在同一文档中组合所有图形格式。 (对于EPS,您需要epstopdf包)
2)dpi要求仅对网格图像有用,因此不适用于矢量化的eps和pdf。我使用png,这是图形的最佳格式。请参阅函数png()中的选项res。
png("somefile.png",res=244)
plot(x, y, xlab="x", ylab="f(x)", pch=16, cex=0.5)
dev.off()
或者,您可以使用函数bmp()以完全相同的方式使用位图图形。不要忘记最后的dev.off()。
答案 1 :(得分:1)
我使用了开罗套餐;代码是:
Cairo(24000,24000,file="a.ps",type="ps",bg="transparent",pointsize=12, units="px", dpi=2400)
plot(x, y, xlab="x", ylab="f(x)", pch=16, cex=0.5, type='l')
dev.off()
结果图看起来很好。但是有一个问题:根据@Joris Meys的说法,dpi对矢量图形没用;在这种情况下,为什么为Cairo函数指定dpi是强制性的?