ggplot2 vs cowplot,FUN 中的错误(“text”[[1L]],...):

Posted

技术标签:

【中文标题】ggplot2 vs cowplot,FUN 中的错误(“text”[[1L]],...):【英文标题】:ggplot2 vs cowplot, Error in FUN("text"[[1L]], ...) : 【发布时间】:2017-03-28 12:09:48 【问题描述】:

我正在尝试使用 cowplot 来组合一些 ggplot2 图。它应该是直截了当的,但是我的 R 或 Rstudio surly 中的某些东西坏了。我不知道什么。我可以让它与 grid.arrange 一起工作,但我的 rmarkdown 文件中的输出并没有那么好。我将我的代码分解到最小数量以重新创建错误,并且超出了 rmarkdown

library(ggplot2)
library(Hmisc)
library(cowplot)


x <- c(1, 8, 9)
y <- c(1, 5, 9)
supply1 <- data.frame(bezier(x, y, evaluation = 500))

g1 <- ggplot(x = 0:10, y = 0:10, geom = "blank") +
  geom_path(data = supply1, aes(x = x, y = y), size = 1, colour = "BLUE")

g2 <- ggplot(x = 0:10, y = 0:10, geom = "blank") +
  geom_path(data = supply1, aes(x = x+1.5, y = y+1.5), size = 1, colour = "RED")


plot_grid(g1, g2,
          ncol = 2, 
          nrow = 1)

我收到此错误:

FUN("text"[[1L]], ...) 中的错误:

主题元素“文本”具有 NULL 属性:边距、调试

我必须分离cowplot,但可以使用以下代码通过gridExtra获得一些接近的东西:

library(ggplot2)
library(Hmisc)
library(gridExtra)


x <- c(1, 8, 9)
y <- c(1, 5, 9)
supply1 <- data.frame(bezier(x, y, evaluation = 500))

g1 <- ggplot(x = 0:10, y = 0:10, geom = "blank") +
  geom_path(data = supply1, aes(x = x, y = y), size = 1, colour = "BLUE")

g2 <- ggplot(x = 0:10, y = 0:10, geom = "blank") +
  geom_path(data = supply1, aes(x = x+1.5, y = y+1.5), size = 1, colour = "RED")

grid.arrange(g1,g2,
             ncol = 2,
             nrow = 1)

此代码输出: grid.arrange plot

如果我尝试在加载 ggplot2 和 cowplot 库的情况下制作任何 ggplot,我会收到“FUN 消息错误”。 R 3.1.3,RStudio 0.99.903,cowplot 0.4.0,ggplot2 2.1.0

我至少重新安装了所有内容两次,但在另一台计算机上遇到了相同的错误情况。我可以让它以有限的方式工作。如果我在运行除 plot_grid() 块之外的所有其他代码之后等待调用 cowplot 库,那么它将编织并给我 cowplot 输出。我不能仅在 Rmarkdown 中在 R 脚本中重新创建它,但是我必须让它成为 markdown 的最后一块,之后任何 ggplot 尝试都会导致编织失败。

短期我使用了 grid.arrange() 并且只是接受结果,长期我希望有 cowplot 作为一个选项。

有什么想法或建议吗?

【问题讨论】:

我也遇到了同样的问题,看jrnold的回答大约一半:github.com/jrnold/ggthemes/issues/57 我无法在交互模式或 rmarkdown 文档中重现此错误。我正在运行 R 3.3.1、RStudio 1.0.44、ggplot2 2.1.0 和 cowplot 0.6.3。 适用于:R 3.3.2、Windows7、cowplot_0.7.0、Hmisc_4.0-0、ggplot2_2.2.0 我将 R 升级到 3.3.1,将 R studio 升级到 1.0.44,然后它就消失了。 【参考方案1】:

显然这是自 R 3.3.1 以来已修复的错误,因此升级到此版本或更新版本应该会消失。

【讨论】:

以上是关于ggplot2 vs cowplot,FUN 中的错误(“text”[[1L]],...):的主要内容,如果未能解决你的问题,请参考以下文章

R语言使用cowplot包的plot_grid函数将两个ggplot2可视化结果并排组合起来并添加图像标签AB设置组合图像使用共享的图例(shared legend in cowplot)

如何将普通的ggplot与cowplot中的多面对齐?

禁用ggplots的cowplot默认值

ggplot2一页多图排版的简便方法

使用 cowplot 时减少绘图之间的边距

ggplot2中的分轴图