绘制R - 倾斜的eps图像&解决问题

时间:2010-09-10 11:52:29

标签: r graphics latex eps

我想在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
  1. 当我从RGui将图形保存为bmp时,它看起来像here,这很好。当我将其保存为eps并包含在LaTeX中时:

    \begin{figure}[htbp]
    \centering
        \includegraphics[scale=0.4]{./images/f-probart.eps}
    \end{figure}
    

    它是倾斜的,如here的屏幕截图所示 怎么了?我想在eps中从RGui导出时出现问题,因为在IrfanView中也会出现偏差。因此我怀疑LaTeX包含代码不是错误的......

  2. 如何以请求的分辨率创建此图形,例如244 dpi?是否有其他包/功能允许我以特定分辨率导出eps?

  3. 由于

2 个答案:

答案 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是强制性的?