欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

用R做heatmap示例:NBA联盟50位顶级球员的指标表现

发布时间:2024/9/5 编程问答 78 豆豆
生活随笔 收集整理的这篇文章主要介绍了 用R做heatmap示例:NBA联盟50位顶级球员的指标表现 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
用R做heatmap示例:NBA联盟50位顶级球员的指标表现

虽然 heatmap 只是 R 中一个很普通的图形函数,但这个例子使用了2008-2009赛季 NBA 50个顶级球员数据做了一个极佳的演示,效果非常不错。对 R 大致了解的童鞋可以直接在 R console 上敲

?heatmap

直接查看帮助即可。

没有接触过 R 的童鞋继续围观,下面会仔细介绍如何使用 R 实现 NBA 50位顶级球员指标表现热图:

关于 heatmap,中文一般翻译为“热图”,其统计意义wiki上解释的很清楚:

heat map is a graphical representation of data where the values taken by a variablein a two-dimensional map are represented as colors.Heat maps originated in 2D displays of the values in a data matrix. Larger values were represented by small dark gray or black squares (pixels) and smaller values by lighter squares.

下面这个图即是Flowingdata用一些 R 函数对2008-2009 赛季NBA 50名顶级球员指标做的一个热图(点击参看大图):

 

先解释一下数据:

这里共列举了50位球员,估计爱好篮球的童鞋对上图右边的每个名字都会耳熟能详。这些球员每个人会有19个指标,包括打了几场球(G)、上场几分钟(MIN)、得分(PTS)……这样就行成了一个50行×19列的矩阵。但问题是,数据有些多,需要使用一种比较好的办法来展示,So it comes, heatmap!

简单的说明:

比如从上面的热图上观察得分前3名(Wade、James、Bryant)PTS、FGM、FGA比较高,但Bryant的FTM、FTA和前两者就差一些;Wade在这三人中STL是佼佼者;而James的DRB和TRB又比其他两人好一些……

姚明的3PP(3 Points Percentage)这条数据很有意思,非常出色!仔细查了一下这个数值,居然是100%。仔细回想一下,似乎那个赛季姚明好像投过一个3分,并且中了,然后再也没有3p。这样本可真够小的!

最后是如何做这个热图(做了些许修改):

#读取数据就这么简单: nba =read.csv("http://datasets.flowingdata.com/ppg2008.csv", sep=",")#Step 2. Sort data #按照球员得分,将球员从小到大排序: nba <- nba[order(nba$PTS),]#Step 3. Prepare data #把行号换成行名(球员名称): row.names(nba) <- nba$Name #去掉第一列行号: nba <- nba[,2:20] # or nba <- nba[,-1] #Step 4. Prepare data, again #把 data frame 转化为我们需要的矩阵格式: nba_matrix <- data.matrix(nba) #Step 5. Make a heatmap # R 的默认还会在图的左边和上边绘制 dendrogram,使用Rowv=NA, Colv=NA去掉 heatmap(nba_matrix, Rowv=NA, Colv=NA, col=cm.colors(256), revC=FALSE, scale='column') #这样就得到了上面的那张热图。 #Step 6. Color selection #或者想把热图中的颜色换一下: heatmap(nba_matrix, Rowv=NA, Colv=NA, col=heat.colors(256), revC=FALSE, scale="column", margins=c(5,10))

 

 

延伸阅读:

来自于kerimcan和krees这些人的讨论:

http://sekhon.polisci.berkeley.edu/stats/html/heatmap.html
http://enotacoes.wordpress.com/2007/11/16/easy-guide-to-drawing-heat-maps-to-pdf-with-r-with-color-key/

补充:

David Smith 的 博客。

posted on 2012-03-15 22:58 wentingtu 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/wentingtu/archive/2012/03/15/2399458.html

总结

以上是生活随笔为你收集整理的用R做heatmap示例:NBA联盟50位顶级球员的指标表现的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。