3

更新 原来这是无法通过远程桌面连接生成光栅图形的问题。

我想将文件中的图像插入到使用 ggplot2 制作的绘图中。这个问题已经在这里被问过(将图像插入到 ggplot2),但对我来说,接受的答案会产生一个没有任何图像的情节。没有错误或警告:轴、网格和点都绘制得很好,但没有 R 标志(导出的图;我无法在此处上传图像)。下面的代码:

library(ggplot2)
library(png)
library(grid)

img <- readPNG(system.file("img", "Rlogo.png", package="png"))
g <- rasterGrob(img, interpolate=TRUE)

qplot(1:10, 1:10, geom="blank") +
  annotation_custom(g, xmin=-Inf, xmax=Inf, ymin=-Inf, ymax=Inf) +
  geom_point()

我尝试过使用 xy 值并使用了几种不同的图像和格式,但无济于事。

我遇到的问题是特定于使用带有 annotate_custom() 的 rastergrob 对象,因为ggplot2 文档站点上给出的 annotate_custom() 示例工作得很好,例如:

library(gridExtra)

qplot(1:10, 1:10, geom = "blank") + 
  annotation_custom(grob = tableGrob(head(iris[ ,1:3])),
  xmin = 3, xmax = 6, ymin = 2, ymax = 8)

我在 ggplot2 版本 0.9.3.1 的 Windows 上使用 64 位 R 版本 3.0.2,并且我的包都已更新。

任何想法都会受到欢迎,如果我遗漏了一些简单的东西,我们深表歉意!

4

1 回答 1

4

正如对这个问题的回答(R 基础包网格不产生输出)中所解释的那样,“R 不能通过远程桌面连接在窗口设备中正确生成光栅图像。如果需要光栅图像,则必须将绘图输出到另一个设备。”

我正在使用远程桌面连接访问 R,因此不会绘制光栅 grob。

于 2013-12-04T04:17:42.167 回答