用R做heatmap示例:NBA联盟50位顶级球员的指标表现
虽然 heatmap 只是 R 中一个很普通的图形函数,但这个例子使用了2008-2009赛季 NBA 50个顶级球员数据做了一个极佳的演示,效果非常不错。对 R 大致了解的童鞋可以直接在 R console 上敲
?heatmap
直接查看帮助即可。
没有接触过 R 的童鞋继续围观,下面会仔细介绍如何使用 R 实现 NBA 50位顶级球员指标表现热图:
关于 heatmap,中文一般翻译为“热图”,其统计意义wiki上解释的很清楚:
A 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 的 博客。
转载于:https://www.cnblogs.com/wentingtu/archive/2012/03/15/2399458.html
用R做heatmap示例:NBA联盟50位顶级球员的指标表现相关推荐
- 用python分析NBA联盟球员信息,才知道这些秘密!
作者: 锋小刀 微信搜索[Python与Excel之交]关注我的公众号查看更多内容 前言 NBA由北美三十支队伍组成的男子职业篮球联盟,汇集了世界上最顶级的球员,是美国四大职业体育联盟之一. 本文爬取 ...
- 菜鸟教程-C语言经典100示例(后50)
注:接上篇(菜鸟教程-C语言经典100示例(前50)) 51,学习使用按位与 &. 52,学习使用按位或 |. 53,学习使用按位异或 ^. 54,取一个整数a从右端开始的4-7位. 55,学 ...
- 菜鸟教程-C语言经典100示例(前50)
这两天正在看基础的算法,在做的时候肯定不能避免的接触了菜鸟上的经典100例,但是使用的时候发现并不是那么的方便,因为它只是给了序号,如果查找某一问题的话很不方便,所以做了这篇博客,希望给自己和其他人带 ...
- R主成分分析PCA示例
R主成分分析PCA示例 目录 R主成分分析PCA示例 主成分分析(Principal components analysis) 加载数据 计算主成分(Principal
- 《数据分析实战》--用R做交叉列表
<数据分析实战>–用R做交叉列表 本文参考的是<数据分析实战>第四章. 背景:针对某公司的产品,发现当月的用户使用量减少了很多,但是和上月相比,本月的商业宣传和月度活动并无大的 ...
- php转行当保安,一个保安转行做头条号年入50万,他是怎么做到的?
原标题:一个保安转行做头条号年入50万,他是怎么做到的? 作者:边瑾 来源:今日榜 提到欢子,很多人会直接想到歌手欢子,那个因<心痛2009>火遍全国各地的男艺人. 但在头条号短视频领域, ...
- 使用R做方差分析实现多重比较可视化结果
说明:本文章中为作者R学习笔记,资料及操作流程均来源网络,侵权删! 本文源代码"使用R做方差分析源代码.R" 1. 方差分析假定:正态性(否则建立广义线性模型),独立性(否则建立混 ...
- 用R做中文LDA主题模型可视化分析
LDA主题模型在2002年被David M. Blei.Andrew Y. Ng(是的,就是吴恩达老师)和Michael I. Jordan三位第一次提出,近几年随着社会化媒体的兴起,文本数据成为越来 ...
- 想做国外CPA广告联盟,准备好接受洗礼吧
CPA联盟国外又称广告联盟国外也叫LEAD,是指导和带领他人完成一定任务的过程,如注册.邮件提交.邮件确认等.其本质是引导访客通过自己的推广链接完成广告主下达的任务,从而获得广告主支付的佣金. 目前, ...
最新文章
- 西瓜创客+Leangoo敏捷实践企业案例分享
- Mac上运行第一个Hadoop实例
- Angular 2+ 监听路由变化动态设置页面标题
- (转)使用异步 I/O 大大提高应用程序的性能
- 一些关于bootstrap,bagging,Adaboost,random forest, gradient boost的基本理解
- 处理数字_8_计算不含最大/小值的均值
- Flume的Avro Sink和Avro Source研究之一: Avro Source
- 【转载】ACM中矩阵乘法的应用
- C# 篇基础知识10——多线程
- 我只是bug的搬运工之idea的Cannot run program git.exe: CreateProcess error=2
- ORACLE创建表空间、用户语句
- WinAPI 字符及字符串函数(13): lstrcmp、lstrcmpi - 对比串
- c语言自学手册百度云,C语言新手入门自学零基础通俗易懂教程百度云
- ANC主动降噪理论及Matlab代码实现
- thrift0.8.0支持win7的方法
- linux-ext4格式文件误删除恢复
- 新云人才招聘系统抖音小程序申请配置教程
- 计算机启用远程桌面连接失败,解决办法:如何处理win10远程桌面连接失败?
- 1062 最简分数 python
- 什么叫单模光纤_什么是OS1,OS2的单模光纤
热门文章
- windows tasklist 查看应用、进程
- Spring的EL表达式
- python累积和_python – 如何维持累积总和?
- 质数环问题c语言,素数环问题
- c语言两种排序方法的组合,排列和组合算法的实现方法_C语言经典案例
- php定义一个名为Vehicles,php的扩展和嵌入--c++类的扩展开发
- 微型计算机,单片机和单板机是,9、微型计算机、单片机和单板机是()
- PyTorch教程(八):常见激活函数与Loss的梯度
- sed行首行尾添加字符
- SparkSQL 控制文件输出的大小