将剧情保存为EMF文件

我遇到devEMF包中的emf()功能问题。将剧情保存为EMF文件

我使用的代码 -

library(devEMF) 

emf(file = "trial.emf")

plot(1:10, seq(10, 100, 10), type = "l", xlab = "Time", ylab = "Distance")

#sample plot

dev.off()

这不会有情节,但确实拥有一切(标签,轴蜱,标题)。

我失去了一些图形包?

sessionInfo() 

#R version 3.3.2 (2016-10-31)

#Platform: x86_64-w64-mingw32/x64 (64-bit)

#Running under: Windows 7 x64 (build 7601) Service Pack 1

#locale:

#[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United #

#States.1252

#[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C

#[5] LC_TIME=English_United States.1252

#attached base packages:

#[1] stats graphics grDevices utils datasets methods base

#other attached packages:

#[1] devEMF_3.6

#loaded via a namespace (and not attached):

#[1] tools_3.3.2

回答:

如果您试图在LibreOffice之外查看,那么该函数中的某些默认值并不理想。

试试这个:

library(devEMF) 

emf(file = "trial.emf", emfPlus = FALSE)

plot(1:10, seq(10, 100, 10), type = "l", xlab = "Time", ylab = "Distance")

dev.off()

确保emfPlus = FALSE。如果您查看LibreOffice中由emfPlus = TRUE生成的图,您会看到它看起来很好。与其他观众一起使用时请使用emfPlus = FALSE

回答:

最有可能用于查看生成的emf图形的程序不支持EMF +记录。

正如JMT2080AD的回答所暗示的,devEMF库可以生成“EMF”或“EMF +”文件。较新的EMF +格式(https://msdn.microsoft.com/en-us/library/cc230724.aspx)自2007年以来一直存在,并且得到了最近的闭源程序(即Office 2010)的支持,但是旧程序(例如旧版本的Adobe Illustrator)缺少支持,源程序(例如LibreOffice,Inkscape)。

无论好坏,EMF +记录都嵌入EMF评论记录中,这意味着较旧的程序会默默地忽略它们。

我发现devEMF默认为Microsoft Office 2010和LibreOffice> 5.1.6生成可接受的文件。尽管LibreOffice对EMF +的支持不完整,但默认情况下在emf()的调用中关闭了不受支持的功能。也就是说,JMT2080AD在emf()的调用中设置emfPlus = FALSE的建议可能会使文件更多程序可见(以损失透明度和抗锯齿等功能为代价)。

(披露:我是devEMF包的作者)

以上是 将剧情保存为EMF文件 的全部内容, 来源链接: utcz.com/qa/267329.html

回到顶部