仅按一个变量着色时,两个分组变量的分隔框

编程入门 行业动态 更新时间:2024-10-24 21:28:18
本文介绍了仅按一个变量着色时,两个分组变量的分隔框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

以下是geom_boxplot man page中的一个示例:

p = ggplot(mpg, aes(class, hwy)) p + geom_boxplot(aes(colour = drv))

如下所示:

我想制作一个非常类似的图,但在该示例中class变量位于class处,而drv在drv处使用(格式化的)日期。

以下是一些示例数据:

df_box = data_frame( Date = sample( as.yearmon(seq.Date(from = as.Date("2013-01-01"), to = as.Date("2016-08-01"), by = "month")), size = 10000, replace = TRUE ), Source = sample(c("Inside", "Outside"), size = 10000, replace = TRUE), Value = rnorm(10000) )

我尝试了很多不同的方法:

  • 在Date变量两边加上as.factor,那么我就不再有x轴上间隔良好的日期刻度:

    df_box %>% ggplot(aes( x = as.factor(Date), y = Value, # group = Date, color = Source )) + geom_boxplot(outlier.shape = NA) + theme_bw() + xlab("Month Year") + theme( axis.text.x = element_text(hjust = 1, angle = 50) )
  • 另一方面,如果按照建议here将Date用作附加group变量,则添加color不再有任何附加影响:

    df_box %>% ggplot(aes( x = Date, y = Value, group = Date, color = Source )) + geom_boxplot() + theme_bw()
  • 关于如何在保持yearmon比例x轴的同时实现#1的输出,有什么想法吗?

    推荐答案

    由于Date和Source的每个组合都需要单独的框,因此请使用interaction(Source, Date)作为group美学:

    ggplot(df_box, aes(x = Date, y = Value, colour = Source, group = interaction(Source, Date))) + geom_boxplot()

    更多推荐

    仅按一个变量着色时,两个分组变量的分隔框

    本文发布于:2023-11-30 10:59:52,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1649733.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:变量   两个

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!