首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用cowplot::plot_grid装配绘图时的错误

用cowplot::plot_grid装配绘图时的错误
EN

Stack Overflow用户
提问于 2019-05-16 15:03:06
回答 2查看 946关注 0票数 0

我使用以下代码生成冗余分析(RDA)的散点图。图中只有一个物种,我正在对另外两个物种进行这个分析(我没有显示其他两个物种的代码,因为它基本上是相同的)。

代码语言:javascript
复制
rda.plot.sap <- ggplot(df1, aes(x=RDA1, y=RDA2)) + 
  geom_point(aes(shape = df1[,"Enclos"], color = df1[,"Type_enclos"]), size = 2) +
  geom_hline(yintercept=0) + 
  geom_vline(xintercept=0) + 
  coord_fixed() + 
  scale_shape_manual(values = c(1, 19)) + 
  scale_color_manual(values=c('#999999','#E69F00'))  

rda.plot.sap <- rda.plot.sap + 
  geom_segment(data=df2, 
               aes(x=0, xend=RDA1, y=0, yend=RDA2), 
               color="red", arrow=arrow(length=unit(0.01,"npc")), size = 0.8) +
  geom_text(data=df2, 
            aes(x=RDA1, y=RDA2, label=rownames(df2), 
                hjust=0.5*(1-sign(RDA1)) + hjust_sap_x,
                vjust=0.5*(1-sign(RDA2) + vjust_sap_x)), 
            color="red", size=5)

rda.plot.sap <- rda.plot.sap + 
  geom_segment(data=df3, 
               aes(x=0, xend=RDA1, y=0, yend=RDA2), 
               color="blue", arrow=arrow(length=unit(0.01,"npc")), size = 0.8)+ 
  geom_text(data=df3, 
            aes(x=RDA1, y=RDA2, label=rownames(df3), 
                hjust=0.5*(1-sign(RDA1)),
                vjust=0.5*(1-sign(RDA2))), 
            color="blue", size=5)

rda.plot.sap <- rda.plot.sap + 
  theme(panel.background = element_blank(), 
        axis.title = element_text(size = 20), 
        axis.line.x = element_line(color="black", size = 1),
        axis.line.y = element_line(color="black", size = 1),
        axis.text = element_text(size = 15), 
        legend.title = element_blank(), 
        legend.text = element_text(size = 15),
        legend.key=element_blank(),
        legend.position = c(0.15, 0.9)) + 
  xlim(c(-0.6, 0.4))  

rda.plot.sap <- rda.plot.sap + 
  xlab(paste("RDA1 (", var.rda1, " % - p = ", p.rda1, ")", sep = "")) + 
  ylab(paste("RDA2 (", var.rda2, " % - p = ", p.rda2, ")", sep = ""))

代码工作非常好,我获得了三个单独的情节,没有任何错误或警告。问题是,当我试图使用牛仔包的函数plot_grid组装这三幅图时:

代码语言:javascript
复制
final_plot <- plot_grid(rda.plot.sap, rda.plot.epi, rda.plot.het, 
                        nrow = 1, ncol = 3, labels = c("A", "B", "C"))  

我总是得到同样的简单错误:

错误:美学必须是长度1或与数据(27)相同:形状、颜色。

更奇怪的是,在得到这个错误之后,如果我想再次运行一个单独的地块的代码(只有一个物种),我就会得到相同的错误。

这是我的第一篇文章,所以我希望我描述的问题足够准确。我不明白这是怎么回事,所以提前感谢谁能帮我。

EN

回答 2

Stack Overflow用户

发布于 2020-10-12 15:31:42

我不知道为什么,但是从labels中删除plot_grid()参数通常会修复这个问题。(您只需使用geom_text()ggtitle()将标签单独添加到每个地块。)

票数 0
EN

Stack Overflow用户

发布于 2021-08-10 20:51:49

根据为这个要旨找到的注释,这个问题与自定义主题没有设置plot_grid用于标签所需的美学有关。请参见以下修复:

代码语言:javascript
复制
final_plot <- plot_grid(rda.plot.sap, rda.plot.epi, rda.plot.het, 
                        nrow = 1, ncol = 3, labels = c("A", "B", "C"),
                        label_fontfamily = "Times", label_colour = "black")  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56171548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档