R 根据因素改变背景,不在ggplot2中工作
我有一名运动员的数据,以及他们在每一场比赛中所处的位置。每个季度最多持续20分钟 我想画出这个球员在每个位置上花费的时间,并根据位置改变颜色。我的问题是,所以我在R 根据因素改变背景,不在ggplot2中工作,r,ggplot2,R,Ggplot2,我有一名运动员的数据,以及他们在每一场比赛中所处的位置。每个季度最多持续20分钟 我想画出这个球员在每个位置上花费的时间,并根据位置改变颜色。我的问题是,所以我在ggplot2中使用了geom\rect代码 我的数据示例如下: # Sample data.frame df <- data.frame(Time=c(0, 5.35, 19.26, 23.32, 9.08, 13.11, 0, 0,
ggplot2
中使用了geom\rect
代码
我的数据示例如下:
# Sample data.frame
df <- data.frame(Time=c(0, 5.35, 19.26, 23.32,
9.08, 13.11, 0, 0,
7.36, 2.51, 6.44, 22.47,
0, 24.38, 11.36),
Athlete = c('Paul', 'Paul', 'Paul', 'Paul',
'Paul', 'Paul', 'Paul','Paul',
'Paul', 'Paul', 'Paul','Paul',
'Paul', 'Paul', 'Paul'),
Quarter = c('Q1', 'Q1', 'Q1', 'Q1',
'Q2', 'Q2', 'Q2', 'Q3',
'Q3', 'Q3', 'Q4', 'Q4',
'Q4', 'Q4', 'Q4'),
Position = c('Bench','Defender','Bench','Defender',
'Bench','Defender','Defender','Defender',
'Defender','Bench','Bench','Bench',
'Defender', 'Defender', 'Defender'))
#Sample data.frame
df我可以通过简单地对数据帧重新排序得到所需的图,以便时间是连续的。我使用以下代码创建了所需的绘图:
# Order data.frame
attach(df)
df <- df[order(Athlete, Quarter, Time),]
# Re-plot
ggplot(df, aes(x = Time, y = Value)) +
geom_rect(aes(NULL, NULL,
xmin=Time, xmax=30,
ymin=0, ymax=50,
fill = Position)) +
scale_y_continuous(expand = c(0, 0), limits = c(0, 50)) +
scale_x_continuous(expand = c(0, 0), limits = c(0, 30)) +
theme_classic() +
theme(legend.position = "bottom",
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_blank(),
axis.text.x = element_text(face = "bold", colour = "black", size = 10),
axis.ticks.y = element_blank(),
axis.line.y = element_blank(),
panel.spacing = unit(1.5, "lines"),
strip.text = element_text(color = "black", size = 12, face = "bold")) +
facet_wrap(~ Quarter, nrow = 1)
#Order data.frame
附加(df)
df由于设置了xmax=30,所以矩形被覆盖。您可以使用alpha=0.5来查看它。谢谢,我如何设置xmax以确保我正确地看到它?关于数据,有太多我不了解的事情需要我回答。我想这是某种足球术语,时间和季度等的含义让我难以理解。
# Order data.frame
attach(df)
df <- df[order(Athlete, Quarter, Time),]
# Re-plot
ggplot(df, aes(x = Time, y = Value)) +
geom_rect(aes(NULL, NULL,
xmin=Time, xmax=30,
ymin=0, ymax=50,
fill = Position)) +
scale_y_continuous(expand = c(0, 0), limits = c(0, 50)) +
scale_x_continuous(expand = c(0, 0), limits = c(0, 30)) +
theme_classic() +
theme(legend.position = "bottom",
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_blank(),
axis.text.x = element_text(face = "bold", colour = "black", size = 10),
axis.ticks.y = element_blank(),
axis.line.y = element_blank(),
panel.spacing = unit(1.5, "lines"),
strip.text = element_text(color = "black", size = 12, face = "bold")) +
facet_wrap(~ Quarter, nrow = 1)