需要帮助使用ggplot绘制五线折线图

时间:2019-12-29 20:33:11

标签: r ggplot2

此输入数据来自dput:

structure(list(Player = c("deGrom", "deGrom", "deGrom", "deGrom", 
"deGrom", "deGrom", "deGrom", "Wheeler", "Wheeler", "Wheeler", 
"Wheeler", "Wheeler", "Wheeler", "Syndergaard", "Syndergaard", 
"Syndergaard", "Syndergaard", "Matz", "Matz", "Matz", "Matz", 
"Matz", "Stroman", "Stroman"), GSc = c(66, 70, 77, 77, 79, 78, 
79, 76, 70, 64, 70, 62, 70, 69, 73, 81, 62, 68, 62, 69, 68, 70, 
63, 75)), row.names = c(NA, -24L), class = c("tbl_df", "tbl", 
"data.frame"))

我有一个数据帧MetsGS3,上面有数据。

我想使用ggplot为五个玩家中的每一个创建一个折线图,并使用不同的色线。 x轴将包含数字2、4、6、8、10、12。y轴将包含游戏得分(GS2)。我希望x轴标签为Player,y轴标签为Game Score。

此代码无效,我需要帮助使其正常工作。我知道它缺少元素。

ggplot(MetsGS, aes(x=MetsGS$Player, y=GSc, colour = MetsGS$Player) + geom_line(size=1.2) + ggtitle("Mets Game Score Game Scores")

上次我在RStudio中运行上述ggplot代码时,出现此错误: “错误:表达式不完整:ggplot(MetsGS,aes(x = MetsGS $ Player,y = GSc,color = MetsGS $ Player)+ geom_line(size = 1.2)+ ggtitle(“ Mets Game Score游戏分数”)“

预先感谢, 霍华德

1 个答案:

答案 0 :(得分:2)

我认为您的数据集中缺少一些数据。我找不到您如何将x定义为2到12之间的数字。

因此,我假设对于每个玩家,包含玩家名称的每一行对应一个不同的游戏。因此,我使用dplyr来创建一个新列(我将其称为数据框d):

library(dplyr)
d %>% group_by(Player) %>% mutate(Number = seq_along(Player)*2) 

# A tibble: 24 x 3
# Groups:   Player [5]
   Player    GSc Number
   <chr>   <dbl>  <dbl>
 1 deGrom     66      2
 2 deGrom     70      4
 3 deGrom     77      6
 4 deGrom     77      8
 5 deGrom     79     10
 6 deGrom     78     12
 7 deGrom     79     14
 8 Wheeler    76      2
 9 Wheeler    70      4
10 Wheeler    64      6
# … with 14 more rows

并像这样绘制它:

library(ggplot2)
library(dplyr)
d %>% group_by(Player) %>% mutate(Number = seq_along(Player)*2) %>%
  ggplot(., aes(x=Number, y=GSc, colour = Player)) + 
  geom_line(size=1.2) + 
  ggtitle("Mets Game Score Game Scores")+
  scale_x_continuous(breaks = seq(2,14, by = 2))

enter image description here

它看起来像您要找的东西吗?如果不是,您能否澄清您的问题