码迷,mamicode.com
首页 > 编程语言 > 详细

用R语言分析詹姆斯的客场得分

时间:2016-05-06 15:14:49      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:

  篮球小皇帝——勒布朗·詹姆斯(LeBron James), 1984年12月30日出生在美国·俄亥俄州·阿克伦,美国男子职业篮球运动员,司职小前锋,现效力于克利夫兰骑士队。
  勒布朗·詹姆斯在2003年的NBA选秀大会中,首轮第一顺位被克利夫兰骑士队选中。2003-2010年,詹姆斯在骑士队效力7年,期间获得两届NBA最有价值球员(MVP)。2010年转会至迈阿密热火队,与德怀恩·韦德、克里斯·波什组成“三巨头”阵容。
  现在,用R语言来分析詹姆斯(LBJ)与哪个球队相遇时,表现得最好。先用地图来标出,NBA 30支球队的地理分布,如图(1)所示。  

技术分享
图(1) NBA 30支球队的地理分布

  球队的简称:
  
技术分享
图(2) 球队的简称

  球队所在的城市和分区:
  
技术分享
图(3) 球队所在的城市和分区

   首先,我们要收集原始数据,其中包含3个变量: Opp、AvgPTS、state。
   Opp表示对手的球队名称;AvgPTS为詹姆斯对阵该队时的平均得分;state表示球队所在的州,各州的名称必须与R中内置的美国地图信息保持一致,美国地图的数据信息通过函数map_data()获取。
   另外,由于NBA球队并不是遍布每一个州,对于没有球队的州,我们将对应的AvgPTS赋值为0,这样绘制图形时就会以灰色区域表示了。
  数据源保存在lbj.txt中。
  //lbj.txt  

Opp AvgPTS  state
ATL 21.75   georgia
BOS 29.25   massachusetts
BRK 21.67   ‘new york‘
CHA 30  ‘north carolina‘
CHI 28  illinois
CLE 27.67   ohio
DAL 28  texas
DEN 23.5    colorado
DET 29  michigan
GSW 28  california
HOU 35  texas
IND 21  indiana
LAC 30  california
LAL 35.5    california
MEM 19  tennessee
MIL 27.5    wisconsin
MIN 21  minnesota
NOH 30  louisiana
NYK 27.67   ‘new york‘
OKC 34  oklahoma
ORL 28.67   florida
PHI 23.75   pennsylvania
PHO 22  arizona
POR 22.5    oregon
SAC 30  california
SAS 23  texas
UTA 31  utah
WAS 24.33   washington
NA  0   alabama 
NA  0   arkansas
NA  0   connecticut
NA  0   delaware
NA  0   ‘district of columbia‘
NA  0   idaho
NA  0   iowa
NA  0   kansas
NA  0   kentucky
NA  0   maine
NA  0   maryland
NA  0   mississippi
NA  0   missouri
NA  0   montana
NA  0   nebraska
NA  0   nevada
NA  0   ‘new hampshire‘
NA  0   ‘new jersey‘
NA  0   ‘new mexico‘
NA  0   ‘north dakota‘
NA  0   ‘rhode island‘
NA  0   ‘south carolina‘
NA  0   ‘south dakota‘
NA  0   vermont
NA  0   virginia
NA  0   ‘west virginia‘
NA  0   wyoming

  使用软件R3.2.5+RStudio-0.99.893,进行分析,代码如下:
  //deifen.R  

library(ggplot2)
lbj <- read.table("G:/myProject/RDoc/Unit2/rChap6/lbj.txt",header = T,quote = "‘")
attach(lbj)
##查看数据前5行
head(lbj)
##获取美国地图信息
state_map <- map_data("state")

p=ggplot(lbj,aes(map_id=state))+geom_map(aes(fill=AvgPTS),map=state_map)+
  expand_limits(x=state_map$long,y=state_map$lat)+
  scale_fill_continuous(limits=c(19,max(AvgPTS)),high=‘red3‘,low=‘yellow‘,guide="colorbar")+
  labs(title=‘詹姆斯客场平均得分‘)

attach(state_map)
state.uni=unique(region)  #存放各州的名称
xx=0;yy=0  #事先建立变量xx和yy,下面用循环找到每个州对应的坐标值
for(i in 1:length(state.uni))
{
  xx[i]=mean(long[region==state.uni[i]])
  yy[i]=mean(lat[region==state.uni[i]])
}

order=0  #按变量state.uni的顺序找到数据集lbj中各州的位置,存放于变量order
for(i in 1:length(state.uni)){
  order[i]=which(state==state.uni[i])
}
labels=Opp[order]  #通过位置找到各州对应的球队名称
p+annotate("text",x=xx,y=yy,label=labels)  #最后绘图并添加注释

  效果如下:  

技术分享
图(4) 詹姆斯的客场得分

  在图(4)中,颜色从黄到红,由浅到深,表示得分从小到大增长,颜色越红表示得分越高,颜色越淡表示得分越低。詹姆斯在遇到OKC(俄克拉马雷霆队)时,颜色很红,代表得分很高,说明詹姆斯对OKC的克制作用很大。

用R语言分析詹姆斯的客场得分

标签:

原文地址:http://blog.csdn.net/sanqima/article/details/51326248

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!