2017-02-19 55 views
0

我用下面的代码做了一个图,但是,我最近注意到我的一些数据点没有包含错误栏,所以我在写这些代码几个月后重新访问这些代码。在这段时间里,ggplot2已经有了更新,现在我的代码中出现了一些我不知道如何解决的错误。这些在下面详述。ggdraw自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]]错误,我会非常感激!

回答

0

cowplot晕影:

作为GGPLOT2 2.2.0,包现在本身支持副轴线 和在图上的任一侧轴。因此,cowplot函数 switch_axis_position()已被弃用,因为它始终是一个 丑陋的黑客和难以维护。

确实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)) 
+0

'geom_errorbarh'是'ggstance' pacakage的水平几何。目前尚不清楚OP是否使用该软件包,但可能不是错字。 – eipi10

+0

不知道,谢谢 – GGamba

+0

感谢您的帮助!这整理了我所有的问题!据我所知,我打算使用geom_errorbarh,但这只是从ggplot2工作。 – SoCo