R ggplot2:栅格grob的annotation_custom没有绘制

时间:2013-11-26 20:04:25

标签: r ggplot2 grob

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

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

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 documentation site for 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,我的软件包都已更新。

任何想法都会受到欢迎,如果我遗漏了一些简单的话,我会道歉!

1 个答案:

答案 0 :(得分:4)

正如对此问题(R base package grid does not produce output)的回答所解释的那样,“R不能通过远程桌面连接在窗口设备中正确生成光栅图像。如果需要光栅图像,则必须将图形输出到另一个装置“。

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