【问题标题】:Issues with ggdraw since ggplot2 update自 ggplot2 更新以来 ggdraw 的问题
【发布时间】:2017-02-19 00:34:47
【问题描述】:

我用下面的代码做了一个图,但是,我最近注意到我的一些数据点没有包含它们应该包含的错误栏,所以我在编写它几个月后重新访问了这个代码。在这段时间里,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 &lt;- 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]] 错误,我将不胜感激!

【问题讨论】:

    标签: r ggplot2 cowplot


    【解决方案1】:

    来自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))
    

    【讨论】:

    • geom_errorbarh 是来自ggstance 包装的水平几何图形。目前尚不清楚 OP 是否使用了该软件包,但可能不是拼写错误。
    • 感谢您的帮助!这解决了我所有的问题!我打算使用 geom_errorbarh,但据我所知,这只是从 ggplot2 开始的。
    • 如果您认为可以帮助他人,请考虑支持并接受答案
    猜你喜欢
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 2022-07-01
    • 2016-03-22
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多