无聊的人用ggplot2画篮球场

NBA数据分析中用来描述球员的投篮分布经常会用篮球场加散点图的形式,

无聊的人用ggplot2画篮球场_第1张图片
这样似的

那么用R的ggplot2能不能做一个简易版的投篮分布图呢?答案当然是肯定的。

首先就要解决如何画篮球场。恰巧最近在公众号 bioblabla 分享的文章中看到了用 ggplot2 画了一个“囧”字的内容,感觉原理应该差不多,都是方框里面加一些其他的图形,所以模仿了一下,简易版的篮球场出炉,没有太复杂的地方,只是用geom_segment()画线段和geom_curve()函数画弧线的叠加,另外几个小知识点 theme(axis.ticks=element_blank())去掉了坐标轴的刻度;theme(panel.border=element_blank())去掉了边框;theme(axis.text=element_blank())去掉了坐标轴数字;geom_curve()函数的curvature参数为正,弧线向右凸,等于1的时候目测应该是圆形,参数为负弧线向左凸,数值越大弧度越大。

无聊的人用ggplot2画篮球场_第2张图片
结果就是这样似的


无聊的人用ggplot2画篮球场_第3张图片
代码

PS:昨天发现了一篇很有趣的文章Top 50 ggplot2 Visualizations - The Master List (With Full R Code),争取每天一到两个重复原文中的代码

2018.03.05重复第一幅图

几个小知识点options(scipen=999)可以关闭科学计数法(turn-off scientific notation like 1e+48),比如没加这条命令的图的纵坐标

无聊的人用ggplot2画篮球场_第4张图片

加了以后的纵坐标

无聊的人用ggplot2画篮球场_第5张图片

geom_smooth()添加拟合曲线有好几种方法可选,具体可查看帮助文档

最终的结果图

无聊的人用ggplot2画篮球场_第6张图片

你可能感兴趣的:(无聊的人用ggplot2画篮球场)