0

我用下面的代码做了一个图,但是,我最近注意到我的一些数据点没有包含它们应该包含的错误栏,所以我在编写它几个月后重新访问了这个代码。在这段时间里,ggplot2 得到了更新,现在我的代码中出现了我不知道如何修复的错误。下面详细介绍这些。

我的代码是:

p1 <- ggplot(dat3A, aes(x = d15N, y = Depth))

p4 <- p1 + 
    geom_point(size = 1) + 
    geom_path() + 
    scale_y_continuous(expand =  c(0, 0), limits = c(15,0), trans = "reverse") + 
    scale_x_continuous(expand = c(0, 0), limits = c(0,20)) + 
    labs(x=expression(paste(delta^'15', N[NO3],('\u2030'))), y='Depth (cm)') + 
    theme_bw() + 
    theme(axis.line = element_line(colour = "black"), 
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),    
        panel.border = element_blank(), 
        panel.background = element_blank()) +
    geom_errorbarh(aes(xmax=d15N+d15NError, xmin=d15N-d15NError))+ 
    ggtitle("d") + 
    theme(plot.title = element_text(hjust = 0, size=8))+
    theme(axis.text = element_text(size=6), axis.title=element_text(size=8))
p13 <- ggdraw(switch_axis_position(p4, axis = 'x'))

当我运行这一切运行正常,直到我来到最后一行代码p13 <- ggdraw(switch_axis_position(p4, axis = 'x'))

然后我收到以下错误:

gt$grobs[[ixl]] 中的错误:尝试选择少于一个元素此外:警告消息:1:panel.margin已弃用。请改用panel.spacing属性 2:删除 1 行包含缺失值 (geom_errorbarh)。

我不是经验丰富的编码员,所以我不确定如何解决这些错误。我没有在我的代码中使用 panel.margin,所以不确定如何将其更改为 panel.spacing。如果有人可以为此提供任何帮助以及gt$grobs[[ixl]]错误,我将不胜感激!

4

1 回答 1

0

从小cowplot插曲:

从 ggplot2 2.2.0 开始,该包现在原生支持绘图两侧的辅助轴和轴。因此,cowplot 函数 switch_axis_position() 已被弃用,因为它总是一个丑陋的 hack 并且难以维护。

现在确实ggplot2有这个coord_flip功能。switch_axis_position(p4, axis = 'x')被替换为+ scale_x_continuous(position = 'right')

另外..您可能想稍微整理一下该图形结构。

p13 <- ggplot(dat3A, aes(x = d15N, y = Depth)) + 
  geom_point(size = 1) + 
  geom_path() + 
  geom_errorbar(aes(xmax = d15N + d15NError, xmin = d15N - d15NError)) + 
  scale_y_continuous(expand =  c(0, 0), limits = c(15,0), trans = "reverse") + 
  scale_x_continuous(expand = c(0, 0), limits = c(0,20), position = 'right') + 
  labs(x=expression(paste(delta ^ '15', N[NO3], ('\u2030'))), y = 'Depth (cm)') + 
  ggtitle("d") + 
  theme_bw() + 
  theme(axis.line = element_line(colour = "black"), 
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),    
        panel.border = element_blank(), 
        panel.background = element_blank(),
        plot.title = element_text(hjust = 0, size=8),
        axis.text = element_text(size=6),
        axis.title=element_text(size=8))
于 2017-02-19T01:10:54.180 回答