本文介绍了仅按一个变量着色时,两个分组变量的分隔框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下是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()更多推荐
仅按一个变量着色时,两个分组变量的分隔框
发布评论