【问题标题】:plot.MCA() not included in SweaveSweave 中不包含 plot.MCA()
【发布时间】:2012-01-25 19:16:51
【问题描述】:

我似乎对通过Sweave 包含情节的任何其他方法都没有问题。然而,plot.mca()FactoMineR 包中的一种方法似乎没有通过它的情节。它确实创建了一个 Rplot.pdf 文件 - 但无论出于何种原因,它都没有重命名为“RnwFilename-00X.pdf”,并且当您在 RStudio 中 compilePdf() 时它不包含在生成的 PDF 中。

这是一个简单的例子,你自己试试吧。

请注意,您可能需要:install.packages("FactoMineR")

\documentclass[a4paper]{article}

% PREAMBLE
\begin{document}

\begin{center}
<<echo=false,fig=true>>=
library(FactoMineR)
x <- data.frame(
A=sample(letters[1:3],100,rep=T),
B=sample(letters[1:4],100,rep=T),
C=sample(letters[1:3],100,rep=T))
fit.mca <- MCA(x, graph=FALSE)
plot(fit.mca, invisible="ind")
@
\end{center}

\end{document}

更新 - 有关错误消息的更多详细信息:

LaTeX errors:
!pdfTeX error: C:\Program Files (x86)\MiKTeX 2.9\miktex\bin\pdflatex.EXE (file 
R:/.../RnwFilename-010.pdf): PDF inclusion: required page do
es not exist <0>

【问题讨论】:

  • 如果绘图方法 plot.fit.mca 是格子图或 ggplot 图,那么您可能需要一个明确的 print() 围绕它:这是一个 Sweave/R 常见问题解答(不记得数字... )
  • 谢谢 Ben,这是我尝试的第一件事,没有骰子。 :(

标签: r sweave


【解决方案1】:

如果我告诉plot.MCA 不要创建新设备,这对我有用:

plot(fit.mca, invisible="ind",new.plot = FALSE)

稍微编辑一下,这似乎是绘图功能的次优行为,大多数用户(以及其他代码,显然)都希望依靠 R 的默认操作来自动打开新设备。如果用户明确告诉它(通过调用pngpdf 等或通过实际设置new.plot = TRUE),绘图函数应该只打开一个新设备。不过,对此意见可能有所不同。

【讨论】:

  • 你打败了我。我完全同意默认行为。
  • 这行得通——我同意你的观点,完全没有预料到——我读到了new.plot,但不知道它的含义。
  • @BrandonBertelsen 我想出来的唯一原因是因为我尝试在 Sweave 文档之外使用 pdf()dev.off() 生成 pdf 并且 also 失败了,这让我查看了plot.MCA 中的代码,在那里我发现了对dev.new 的调用。这导致灯泡在我头顶熄灭。
  • 我给包维护者 (Francois Husson) 写了一张便条,他更新了默认行为,使其更符合人们的直觉预期。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多