天才写手-GGPLT2如何绘制热力图

本文展示如何使用GGPLT2库从databasebasketball.com获取的NBA数据创建热图,详细介绍了数据预处理、转换及绘图过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此帖子显示如何使用非常相似的结果使用GGPLT2.

nba_heatmap_revised.png

数据导入
上赛季美国 NBA 篮球统计中使用的流量数据databasebasketball.com可直接从其网站下载具有该数据的 CSV 文件。

nba <- read.csv (http://datasets.flowingdata.com/ppg2008.csv
玩家按得分排序,名字变量转换为确保情节正确排序的因素。

nba$Name <- with(nba, reorder(Name, PTS))
同时 FlowingData 使用热图功能统计信息-需要绘制的值为矩阵格式的包,GGPLT2使用数据文件进行操作。为了便于处理,数据文件 RAME 从宽格式转换为长格式。

游戏统计具有非常不同的范围,使得它们能够比较所有的个体统计信息。

library(ggplot2)
nba.m <- melt(nba)
nba.m <- ddply(nba.m, .(variable), transform,
+ rescale = rescale(value))
绘图
没有特定的热图绘图功能GGPLT2但结合了Geom _ tile用平滑的梯度填充很好地完成工作。

(p <- ggplot(nba.m, aes(variable, Name)) + geom_tile(aes(fill = rescale),
+ colour = “white”) + scale_fill_gradient(low = “white”,
+ high = “steelblue”))
basketball_heatmap-008.png

对格式化进行了少量整理,并准备了 “热贴图” 图以进行演示。

base_size <- 9
p + theme_grey(base_size = base_size) + labs(x = “”,
+ y = “”) + scale_x_discrete(expand = c(0, 0)) +
+ scale_y_discrete(expand = c(0, 0)) + opts(legend.position = “none”,
+ axis.ticks = theme_blank(), axis.text.x = theme_text(size = base_size *
+ 0.8, angle = 330, hjust = 0, colour = “grey50”))
basketball_heatmap-010.png

更新更新
在制备上述图的数据时,所有的变量都被随机化,以便它们在0和1之间。

吉姆在评论中正确地指出(而我并不知道这一点)热图-函数使用不同的缩放方法,因此曲线不相同。下面是热贴图的更新版本,它看起来更类似于原始贴图。

nba.s <- ddply(nba.m, .(variable), transform,
+ rescale = scale(value))
last_plot() %+% nba.s
basketball_heatmap-013.png这里写图片描述

天才写手 R代写
转载自:https://uhomework.com/a/ryuyanjiaocheng/20180806/16498.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值