您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 如何用R语言ggplot2画小提琴图展示库里哈登詹姆斯威少爷命中率
## 引言
在篮球数据分析中,可视化球员的投篮命中率分布能直观反映其得分稳定性。本文将通过R语言的`ggplot2`包,绘制斯蒂芬·库里、詹姆斯·哈登、勒布朗·詹姆斯和拉塞尔·威斯布鲁克四位球星的小提琴图(Violin Plot),对比他们的投篮命中率分布特征。
---
## 数据准备
首先需要构建包含球员姓名(`player`)和命中率(`fg_percent`)的模拟数据集。假设我们从NBA官网获取了2022-23赛季的投篮数据:
```r
library(tidyverse)
# 模拟数据生成
set.seed(123)
n <- 100 # 每位球员模拟100场比赛数据
player_data <- tibble(
player = rep(c("Stephen Curry", "James Harden", "LeBron James", "Russell Westbrook"), each = n),
fg_percent = c(
rnorm(n, mean = 48, sd = 8), # 库里命中率均值48%,标准差8%
rnorm(n, mean = 44, sd = 10), # 哈登
rnorm(n, mean = 50, sd = 6), # 詹姆斯
rnorm(n, mean = 43, sd = 12) # 威少
) %>% pmax(30) %>% pmin(70) # 限制命中率在30%-70%之间
)
使用geom_violin()
绘制基础图形,添加箱线图显示中位数和四分位数:
ggplot(player_data, aes(x = player, y = fg_percent, fill = player)) +
geom_violin(trim = FALSE, alpha = 0.7) +
geom_boxplot(width = 0.1, fill = "white", outlier.shape = NA) +
labs(
title = "四位球星投篮命中率分布对比",
x = "球员",
y = "命中率 (%)",
fill = "球员"
) +
theme_minimal()
图示:小提琴宽度代表数据密度,箱线图显示统计量
使用geom_jitter()
展示原始数据分布:
ggplot(player_data, aes(x = player, y = fg_percent)) +
geom_violin(aes(fill = player), alpha = 0.5) +
geom_jitter(width = 0.1, size = 1.5, alpha = 0.3) +
scale_fill_brewer(palette = "Set2")
按球员拆分到不同面板:
ggplot(player_data, aes(y = fg_percent, fill = player)) +
geom_violin() +
facet_wrap(~player, ncol = 2) +
theme(legend.position = "none")
ggplot(player_data, aes(x = fg_percent, fill = player)) +
geom_density(alpha = 0.5) +
facet_grid(player~.)
通过图形可观察到: 1. 勒布朗·詹姆斯的命中率分布最集中(标准差最小),稳定性最佳 2. 威斯布鲁克的分布最分散,存在较多低命中率场次 3. 库里的右偏分布显示其常有超高命中率爆发
library(ggplot2)
library(ggridges)
final_plot <- ggplot(player_data, aes(x = player, y = fg_percent, fill = player)) +
geom_violin(scale = "width", trim = FALSE) +
geom_boxplot(width = 0.15, fill = "white") +
scale_fill_manual(values = c("#FFA500", "#6F8FAF", "#552583", "#702F8A")) +
labs(
title = "NBA四位球星命中率分布对比(2022-23赛季模拟数据)",
subtitle = "小提琴图展示密度分布,箱线图标注四分位数",
caption = "数据来源: 模拟数据 | 可视化: ggplot2"
) +
theme_bw() +
theme(axis.text.x = element_text(angle = 15, hjust = 1))
ggsave("nba_violin_plot.png", final_plot, width = 10, height = 6, dpi = 300)
小提琴图完美结合了箱线图的统计量和核密度估计的分布特征,特别适合展示篮球运动员的状态波动。读者可通过修改aes()
中的color
和scale_fill
参数进一步定制图形风格。
“`
注:实际应用中请替换为真实NBA数据,本文使用模拟数据仅作演示。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。