【问题标题】:Embed ggplot2 Graph in Knitr Document: Unable to find function ggplot在 Knitr 文档中嵌入 ggplot2 图形:无法找到函数 ggplot
【发布时间】:2015-10-12 13:48:36
【问题描述】:

我正在处理一个文档并且同时使用knitrggplot2。我是 knitr 和 TeX 本身的新手,因此对我所做的一切都不太熟悉。

当我打开 RStudio 做这项工作时,我首先运行以下两个命令:

require("knitr")
require("ggplot2")

然后我点击编译 PDF。我有以下引发错误的代码:

<<histogram, echo=FALSE, fig.align='center'>>=
summary(los$hosp_svc)
summary(los$Pt_Age)

binsize = diff(range(los$Pt_Age)/30)
ggplot(los, aes(x = Pt_Age)) + 
  geom_histogram(binwidth = binsize, fill = "red", 
                 alpha = 0.315, colour = 'black') +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank()) +
  xlab("Patient Age in Years") +
  ylab("Frequency/Count") +
  ggtitle("Histogram of Patient Age")
@

我得到的错误是找不到 ggplot 函数,这很奇怪,因为如果我只是在控制台中运行上面的代码,图表就会生成 find,所以我知道包已加载并且可以使用.

有什么想法吗?

谢谢,

【问题讨论】:

  • 尝试将library(ggplot2) 放入您的脚本(.Rnw 文件)中。
  • 工作就像一个魅力,请把它作为解决方案,我会接受它。

标签: r ggplot2 knitr


【解决方案1】:

使用 .Rnw 文件(或 .Rmd 文件)时,请务必在脚本中包含任何 library 调用(见下文)。当您按下“编译 PDF”按钮时,脚本中的 R 代码将提交给 R 的新实例,以防止当前环境中的任何内容弄乱结果。这可能看起来有点奇怪,但有利于重现性。因此,当您点击“编译 PDF”时,未通过脚本显式创建的对象和未在脚本中显式调用的包将被遗忘

<<histogram, echo=FALSE, fig.align='center'>>= 
library(ggplot2)
summary(los$hosp_svc) 
summary(los$Pt_Age)

binsize = diff(range(los$Pt_Age)/30) 
ggplot(los, aes(x = Pt_Age)) + 
  geom_histogram(binwidth = binsize, 
                 fill = "red", 
                 alpha = 0.315, 
                 colour = 'black') + 
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank()) + 
  xlab("Patient Age in Years") + 
  ylab("Frequency/Count") + 
  ggtitle("Histogram of Patient Age") 
@

【讨论】:

  • 不错的答案。对于以后的读者,您可能会注意到,即使多个块依赖于包,也只需在 .Rnw 或 .Rmd 文件中加载一次包。
  • @lawyeR 我已经在我的第一个块中加载了 ggplot2 library(ggplot2),但是在不同的块中绘图时出现错误 could not find function "ggplot"。在执行块时绘图工作正常,但在编织时我收到此错误消息。它没有选择库的任何原因?
  • 你在一个项目中(RStudio)吗?第一个块是否有“, cache = FALSE”作为参数?而且,如果将 ggplot2::ggplot(... 放在第一次调用它的块中,是否会发生相同的错误?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
  • 2016-07-26
  • 1970-01-01
  • 2014-12-08
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
相关资源
最近更新 更多