0

我有一个这样的数据框

Date    Team   Score
1/1/2010 A     10
1/1/2010 B     15
1/1/2010 C     90
1/1/2010 D     100
1/1/2010 E     27
1/1/2010 F     76
1/1/2010 G     10
1/1/2010 H    85
1/1/2010 I     10
1/1/2010 J     5
1/1/2010 K     56
1/1/2010 K     60
1/1/2010 M     15
1/2/2010 A     10
1/2/2010 B     15
1/2/2010 C     90
1/2/2010 D     100
1/2/2010 E     27
1/2/2010 F     76
1/2/2010 G     10
1/2/2010 H    85
1/2/2010 I     10
1/2/2010 J     5
1/2/2010 K     56
1/2/2010 K     60
1/2/2010 M     15

ETC

我想用 ggplot2 绘制该时间段内得分最高的 5 支球队和最低 5 支(得分最低的球队)的图表。

用ggplot做到这一点是否可行?我可以绘制所有球队的图表,但由于我有很多球队,我希望能够查看最高得分者和低得分者。

任何意见将不胜感激?

4

1 回答 1

0

假设您的数据被命名dat为开头,这种基本方法应该有效:

library(ggplot2)
library(plyr)

#summarize and subset
plotdat <- ddply(dat, "Team", summarize, meanval = mean(Score))
plotdat <- plotdat[order(plotdat$meanval),]
plotdat <- rbind(head(plotdat,5), tail(plotdat,5))

#Plot
ggplot(plotdat, aes(reorder(Team, meanval), meanval)) + 
  geom_bar() +
  coord_flip() +
  xlab("Team") +
  theme_bw()

在此处输入图像描述

于 2012-05-18T23:25:22.813 回答