0

我想在 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 时,它看起来像这里,这很好。当我将它保存为 eps 并包含在 LaTeX 中时:

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

    它是倾斜的,如此处的屏幕截图所示 出了什么 问题?我猜想在 eps 中从 RGui 导出存在问题,因为生成的 eps 在 IrfanView 中也显示为倾斜。因此,我怀疑这不是错误的 LaTeX 包含代码......

  2. 我怎样才能以要求的分辨率创建这个图形,比如 244 dpi?是否有另一个包/功能允许我以特定分辨率导出 eps?

谢谢

4

2 回答 2

2

我无法重现您的错误,所以我想这是您系统特有的问题。如果我保存为 eps 并将其包含在乳胶中(使用 graphicsx 包),一切都很好。请记住,如果您在 R 中使用 postscript() 函数,则还必须指定图片的宽度和高度。我可能是错的,但我认为它默认为 R 中图形窗口的默认值(这可以解释你的 eps 图片的尺寸)。

如果你从图形窗口保存,它通常应该取图形窗口的当前宽度和高度。它在我的 R 版本上这样做,但也许您的选项设置不同?检查 ps.options() 并查看宽度和高度的值是否为 0。如果不是这种情况,则可能是问题所在。

附带说明:您可以使用 pdf 代替。请参阅 R 中的 ?pdf。它允许您指定图片的宽度和高度,并在 Latex 中正确再现。然后,您应该使用 pdftex 来构建文件。

我的经验是,使用pdf图形和pdftex比通过PS要少麻烦。事实上,在 Latex 中,不再需要通过 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()。

于 2010-09-10T13:20:01.450 回答
1

我使用了 Cairo 包;代码是:

    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?

于 2010-09-10T20:47:12.553 回答