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

来源:互联网 发布:手机怎么注册淘宝卖家 编辑:程序博客网 时间:2024/04/28 02:56

  篮球小皇帝——勒布朗·詹姆斯(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  stateATL 21.75   georgiaBOS 29.25   massachusettsBRK 21.67   'new york'CHA 30  'north carolina'CHI 28  illinoisCLE 27.67   ohioDAL 28  texasDEN 23.5    coloradoDET 29  michiganGSW 28  californiaHOU 35  texasIND 21  indianaLAC 30  californiaLAL 35.5    californiaMEM 19  tennesseeMIL 27.5    wisconsinMIN 21  minnesotaNOH 30  louisianaNYK 27.67   'new york'OKC 34  oklahomaORL 28.67   floridaPHI 23.75   pennsylvaniaPHO 22  arizonaPOR 22.5    oregonSAC 30  californiaSAS 23  texasUTA 31  utahWAS 24.33   washingtonNA  0   alabama NA  0   arkansasNA  0   connecticutNA  0   delawareNA  0   'district of columbia'NA  0   idahoNA  0   iowaNA  0   kansasNA  0   kentuckyNA  0   maineNA  0   marylandNA  0   mississippiNA  0   missouriNA  0   montanaNA  0   nebraskaNA  0   nevadaNA  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   vermontNA  0   virginiaNA  0   'west virginia'NA  0   wyoming

  使用软件R3.3.0+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中各州的位置,存放于变量orderfor(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的克制作用很大。

1 0
原创粉丝点击