R图形输出问题:"鬼"绘图和格式错误的PDF文件

时间:2014-06-12 13:35:48

标签: r pdf plot ggplot2 rstudio

作为论文研究的一部分,我编写了R代码,用于执行初始数据集的基本探索性数据分析(EDA)。该代码应该以三种格式输出EDA的结果:1) screen (RStudio Plots窗口); 2) SVG文件(每个图表单个文件); 3) PDF文件(所有单变量EDA图的一个文件和所有多变量EDA图的另一个文件)。在涵盖所有感兴趣的变量及其关系方面,它仍然是一项正在进行的工作,但基础架构已经设计和实施(使用ggplot2gridExtra包)。我遇到以下两个问题

1)当在EDA期间,代码应该在RStudio Plots窗口中显示当前图时,屏幕只是闪烁并且无输出被执行。以下是生成并显示图表的代码 (仅限屏幕和SVG ,请参见下面的PDF输出)[类似的代码块被包装在函数中,返回绘图对象(g),它们形成一个列表,然后传递给lapply()以迭代所有绘图]:

df$var <- factor(df[[colName]])

title <- paste("Projects distribution across", colName, "range")

g <- ggplot(data=df, aes(x=var, fill=var)) +
  geom_bar(stat="bin") +
  scale_fill_discrete(colName) + 
  xlab(colName) +
  ylab("Number of projects") +
  ggtitle(label=title)

if (.Platform$GUI == "RStudio") {print(g); dev.off()}

edaFile <- str_replace_all(string=colName, pattern=" ", repl="")
edaFile <- paste0(EDA_RESULTS_DIR, "/", edaFile, ".svg")
suppressMessages(ggsave(file=edaFile, plot=g))

2)在尝试使用EDA结果打开PDF文件后,它会打开,但会进一步尝试导航(即行或页面滚动)或以其他方式使用它(即更改缩放级别)会导致挂起PDF阅读器程序(Adobe Reader XI),标题栏中包含消息&#34; ...(无响应)&#34;。有时,经过一段时间后,Adobe Reader会返回响应状态,但会在短时间内返回,直到下一个操作再次将其发送到挂起状态。我注意到Adobe Reader需要时间来显示一个特定的情节,特别是Q-Q情节。只是想提一下,因为它可能会提供额外的见解。以下是代码将已保存的图输出到PDF文件(这些是保存并显示在屏幕上以及输出到SVG文件的相同图,如上所述):

edaFilePDF <- paste0(EDA_RESULTS_DIR, "/", "eda-univar.pdf")
mg <- do.call(marrangeGrob, c(allPlots, list(nrow=2, ncol = 1)));
suppressMessages(ggsave(filename=edaFilePDF, mg, width=8.5, height=11))

非常感谢您的帮助! P.S.我使用 RStudio Server ,因此输出是基于浏览器的。

0 个答案:

没有答案