千家信息网

怎样使用R语言ggplot2画山脊图展示NBA球员出手距离的分布

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家介绍怎样使用R语言ggplot2画山脊图展示NBA球员出手距离的分布,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。主要内容是探索了NBA 14/15赛季常规赛MVP
千家信息网最后更新 2026年11月03日怎样使用R语言ggplot2画山脊图展示NBA球员出手距离的分布

这篇文章给大家介绍怎样使用R语言ggplot2画山脊图展示NBA球员出手距离的分布,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

主要内容是探索了NBA 14/15赛季常规赛MVP排行榜前四名 库里 哈登 詹姆斯 威少的投篮数据。今天重复第一个内容:用R语言的ggplot2画山脊图展示以上四人的投篮出手距离的分布。

原始数据集下载自kaggle

https://www.kaggle.com/dansbecker/nba-shot-logs

对原始数据集进行清洗的代码 https://github.com/nycdatasci/bootcamp007_project/tree/master/Project1-ExploreVis/Xinyuan_Wu

这部分代码我们就不关注了,直接运行得到作图的数据 数据清洗的代码我已经运行好了,需要本文的示例数据可以直接留言

首先读入清洗好的数据
df<-read.csv("NBA_MVP-1.tsv",header=T,sep="\t")

这边遇到一个问题是:如果用read.table()函数读入数据read.table("NBA_MVP-1.tsv",header=T,sep="\t")就会报错Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, : line 145 did not have 21 elements这个是什么原因呢?暂时还没有搞懂

完整的作图代码
library(ggplot2)
library(ggthemes)
ggplot(data=df,aes(x=dist_cut))+
geom_density(aes(fill=player_name))+
facet_grid(player_name~.)+
theme_gdocs()+
theme(axis.text.y = element_blank())+
labs(x="Shot Distance",y="Shot Density")+
ggtitle("Shot Distance")+
scale_fill_manual("Players",
values = c("#FFCC33", "#FF3300", "#990000", "#0066FF"))

最终结果

image.png
解释代码
library(ggplot2)
library(ggthemes)

加载用到的包

  • ggplot2用来作图
  • ggthemes用来补充一些ggplot2的主题

最基本的密度图

ggplot(data=df,aes(x=dist_cut))+
geom_density(aes(fill=player_name))

根据运动员的名字分面

ggplot(data=df,aes(x=dist_cut))+
geom_density(aes(fill=player_name))+
facet_grid(player_name~.)

设置一个作图的主题

ggplot(data=df,aes(x=dist_cut))+
geom_density(aes(fill=player_name))+
facet_grid(player_name~.)+
theme_gdocs()

去掉y轴的刻度标签

ggplot(data=df,aes(x=dist_cut))+
geom_density(aes(fill=player_name))+
facet_grid(player_name~.)+
theme_gdocs()+
theme(axis.text.y = element_blank())

更改坐标轴的标题

ggplot(data=df,aes(x=dist_cut))+
geom_density(aes(fill=player_name))+
facet_grid(player_name~.)+
theme_gdocs()+
theme(axis.text.y = element_blank())+
labs(x="Shot Distance",y="Shot Density")

给整幅图添加一个标题

ggplot(data=df,aes(x=dist_cut))+
geom_density(aes(fill=player_name))+
facet_grid(player_name~.)+
theme_gdocs()+
theme(axis.text.y = element_blank())+
labs(x="Shot Distance",y="Shot Density")+
ggtitle("Shot Distance")

自定义填充的颜色并且更改图例的标题

ggplot(data=df,aes(x=dist_cut))+
geom_density(aes(fill=player_name))+
facet_grid(player_name~.)+
theme_gdocs()+
theme(axis.text.y = element_blank())+
labs(x="Shot Distance",y="Shot Density")+
ggtitle("Shot Distance")+
scale_fill_manual("Players",
values = c("#FFCC33", "#FF3300", "#990000", "#0066FF"))
大家可以自己从最基本的密度图然后逐步向上叠加代码看看效果

关于怎样使用R语言ggplot2画山脊图展示NBA球员出手距离的分布就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

数据 代码 内容 山脊 语言 标题 清洗 球员 原始 主题 密度 更多 帮助 投篮 运行 不错 兴趣 函数 刻度 原因 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳市人人互联网科技有限公司 湖南永感互联网科技有限公司 互联网科技活动banner 科技赋能下的互联网金融 科技互联网技术 平安科技 互联网 喔噻互联网科技 礼当家互联网科技 万易互联网科技有限公司 北京互联网络科技有限公司 融势互联网科技 注册互联网科技公司经营范围大全 华夏恒生科技与互联网科技 华中科技大学互联网的牛人 卡尔迅互联网科技有限公司 互联网科技平台产品运营 盐城市攀科互联网科技有限公司 互联网的黑科技实验室 宁波允成互联网科技有限公司 互联网高科技绘画 华服互联网科技靠谱吗 科技赋能下的互联网金融 互联网科技垄断 互联网科技类展会 互联网时代科技改变生活 昭通互联网科技选哪家 每天都有哪些好的互联网科技 上海万顺科技互联网有限公司招聘 米泉互联网科技专业怎么样 东风日产互联网科技公司叫什么
0