【问题标题】:remove connecting lines when using color aesthetic ggplot in r在 r 中使用颜色美学 ggplot 时删除连接线
【发布时间】:2020-12-04 19:29:07
【问题描述】:

我正在绘制一个时间序列,其中一个来源的空白从一秒钟开始填充。绘制它以指示来源,我将来源指定为颜色美学,但 ggplot 添加连接线将间隙连接在一起。
有没有清除这些连接线的干净方法?理想情况下,我希望将单独的组连接起来,因为我将它用作一个数据集。

library(ggplot)
set.seed(914)
df=data.frame(x=c(1:100),y=runif(100), z = rep(c("a", "b"), each = 25, times = 2))


ggplot(df, aes(x=x, y = y, color = z))+
      geom_line()

Removing connetion lines between missing Dates in ggplot 建议创建群体美学,或使用 NA 值明确差距。
我的真实数据中没有任何明确的分组美学,例如引用示例中的年份,并且存在许多不规则间隔的间隙,因此尚不清楚如何在每个间隙中插入 NA。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    只要您的彩色“组”在您的数据框中是连续的(如您的示例中所示),您就可以这样做:

    ggplot(df, aes(x=x, y = y, color = z,
                   group = factor(c(0, cumsum(abs(head(z, -1) != tail(z, -1))))))) +
          geom_line()
    

    或者,为了简洁,使用data.table::rleid:

    ggplot(df, aes(x=x, y = y, color = z, group = data.table::rleid(z))) +
          geom_line()
    

    结果相同

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 2016-03-28
      相关资源
      最近更新 更多