数据可视化有意思的小例子:使用R语言探索NBA球星库里常规赛的数据
2023-04-18 15:03:47 时间
数据集来自于kaggle
https://www.kaggle.com/mujinjo/stephen-curry-stats-20092021-in-nba
数据集里收集了NBA勇士队当家球星库里09-21赛季常规赛的数据,总共是761场比赛的数据
数据来源 espn
https://www.espn.com/nba/player/gamelog/_/id/3975/type/nba/year/2010
数据爬取的python代码链接
https://www.kaggle.com/mujinjo/making-curry-stats-dataset-mjjo
选取数据
接下来的探索用到的数据集变量有
- 赛季
- 对手
- 胜负
- 命中数
- 出手次数
- 三分命中数
- 三分出手次数
- 罚球命中数
- 罚球次数
- 篮板
- 助攻
- 盖帽
- 抢断
- 个人犯规次数
- 失误
- 得分
library(tidyverse)
df<-read.csv("Curry/Stephen Curry Regularseason Stats.csv",
header=T)
head(df)
dim(df)
colnames(df)
df %>%
select(1,4,5,8,10,11,14,15,18,19,21:27) -> dfa
首先来看看库里常规赛的胜率
table(dfa$Result)
image.png
胜率高达65%
接下来看看库里面对不同对手的胜率
library(ggplot2)
table(dfa$OPP,dfa$Result) %>%
as.data.frame() %>%
ggplot(aes(x=Var1,y=Freq,fill=Var2))+
geom_bar(stat="identity",position = "dodge")+
theme_bw()+
scale_y_continuous(expand = c(0,0),
limits = c(0,30))+
theme(legend.position = "top",
legend.title = element_blank(),
panel.grid = element_blank())+
scale_fill_manual(values = c("#5a72b5",
"#ea5a49"))+
labs(x=NULL,y=NULL)+
geom_rect(aes(xmin=2.5,xmax=3.5,ymax=29,ymin=0),
fill="white",alpha=0,color="black",
lty="dashed")+
ggsave("1.pdf",
width = 9.4,
height = 4,
family="serif")
image.png
我们可以看到面对不同的对手库里都是胜多负少,唯独有一个例外,就是面对凯尔特人是打了一个平手
接下来再来看看库里每个赛季的得分情况
library(tidyquant)
library(patchwork)
x1<-palette_dark()
colors<-matrix(x1)[,1]
dfa %>%
ggplot(aes(x=Season_year,y=PTS))+
geom_jitter(width = 0.2,
aes(fill=Season_year),
size=5,
shape=21,
color = "#FFDADC")+
scale_fill_manual(values = colors)+
theme_bw()+
theme(legend.position = "none",
panel.grid = element_blank(),
axis.text.x = element_text(angle = 60,
hjust=1))+
labs(x=NULL,y=NULL) -> p1
image.png
接下来添加一个库里的大头贴
here::here("Curry","i.png")
img<-data.frame(x=2,y=55,
img=here::here("Curry","i.png"))
p1+ggimage::geom_image(data=img,
aes(x,y,image=img),
size=0.3)+
ggsave("3.pdf",
width = 8,
height = 6,
family="serif")
image.png
可以看到库里在20-21赛季创造了生涯最高得分,新秀赛季就轰下过40分+。19-20赛季只出战了很少的比赛。
好了,今天的内容就暂时想到这里了,预知后事如何,请听下回分解
相关文章
- 展望未来,无人驾驶车辆将如何改变我们的世界
- 23种设计模式(四) —— 手写实现 Factory Method 模式 (将具体交给子类)
- 23种设计模式(五) —— 手写实现 Singleton 模式 (生成实例)
- Leetcode 刷题笔记 - 1
- 作为设计师你在制定五年规划?别傻了
- 23种设计模式(六) —— 手写实现 Prototype 模式 (生成实例)
- 颜值最高:怎么看指尖上的设计与美食?
- 设计之我认为的关键词:匹配
- 聊一聊我常用的6种绘制地图的方法
- 人工智能如何拯救地球
- 使用AI在工业数据中寻找价值
- 谷歌虚拟现实头盔售出500万套
- Swiss-Mile展示四足轮腿式机器人 可以站立和用于城市配送
- SAP MM 采购附加费计入物料成本?
- 人工智能:新常态下的增长助推器
- 创业初期IT建设 你知多少?
- 浅析 Aes 和 Rsa 加密算法的区别和适用场景
- 关键字辅助嵌入式主题模型
- 实施对话式 AI 解决方案时要避免的七个错误
- 明斯基:差点将AI扼杀在摇篮里的人工智能之父