按多个字段分组图
group plots by multiple fields
我正在重新学习 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 代码中也看到任何过分的地方,欢迎批评!
实现这一点的最简单方法可能是使用 facet_grid
。以下代码将为您提供一个分面图,每个 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()
这给出:
我正在重新学习 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 代码中也看到任何过分的地方,欢迎批评!
实现这一点的最简单方法可能是使用 facet_grid
。以下代码将为您提供一个分面图,每个 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()
这给出: