我正在重新学习ggplot,而且我认为这是一个棘手的分组问题
SamplePeriod=c(rep(1:2, each=6, len=12))
Market=c(rep(LETTERS[1:2], each=3, len=12))
Day=c(rep(1:3,len=12))
Sales=c(5,6,7,8,9,7,5,6,7,5,6,7)
df <- data.frame(Sales=as.numeric(Sales),Day=as.numeric(Day),
SamplePeriod=as.numeric(SamplePeriod),Market)
df
Sales Day SamplePeriod Market
1 5 1 1 A
2 6 2 1 A
3 7 3 1 A
4 8 1 1 B
5 9 2 1 B
6 7 3 1 B
7 5 1 2 A
8 6 2 2 A
9 7 3 2 A
10 5 1 2 B
11 6 2 2 B
12 7 3 2 B
我希望将销售量作为日期的函数。每个SamplePeriod-Market组合应该是它自己的行(1-A一行,1-B,2-A,2-B一行)。最后,我想以不同的方式为市场着色,并在一个地块上绘制所有内容。
了解如何在自己的情节中面对每个市场也是有用的。
如果有人在我生成的R代码中看到任何令人震惊的东西,欢迎批评!
答案 0 :(得分:0)
实现这一目标的最简单方法可能是使用facet_grid
。以下代码将为您提供带有facet的分面图,每个SamplePeriod
- Market
组合使用每个Market
的彩色线:
ggplot(df, aes(x = Day, y = Sales, color = Market)) +
geom_line(size=2) +
facet_grid(SamplePeriod ~ Market, labeller = label_both) +
theme_bw()
这给出了以下情节:
正如@drmariod所提到的,您可以将其与interaction
:
ggplot(df, aes(x=Day, y=Sales, color=interaction(Market,SamplePeriod))) +
geom_line(size=2) +
facet_grid(SamplePeriod ~ Market, labeller = label_both) +
theme_bw()
这给出了: