所有作品合集传送门: Tidy Tuesday

2018 年合集传送门: 2018

NFL Positional Salaries

NFL Positional Salaries

Tidy Tuesday 在 GitHub 上的传送地址:
Thomas Mock (2022). Tidy Tuesday: A weekly data project aimed at the R ecosystem. https://github.com/rfordatascience/tidytuesday

1. 一些环境设置

# 设置为国内镜像, 方便快速安装模块
options("repos" = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))

2. 设置工作路径

wkdir <- '/home/user/R_workdir/TidyTuesday/2018/2018-04-09_NFL_Positional_Salaries/src-a'
setwd(wkdir)

3. 加载 R 包

library(scales)
library(ggplot2)
library(tidyverse)
library(showtext)
# 在 Ubuntu 系统上测试的, 不加这个我画出来的汉字会乱码 ~
showtext_auto()

4. 加载数据

df_input <- readxl::read_excel("../data/nfl_salary.xlsx")# 简要查看数据内容
glimpse(df_input)
## Rows: 800
## Columns: 11
## $ year                <dbl> 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 20…
## $ Cornerback          <dbl> 11265916, 11000000, 10000000, 10000000, 10000000, …
## $ `Defensive Lineman` <dbl> 17818000, 16200000, 12476000, 11904706, 11762782, …
## $ Linebacker          <dbl> 16420000, 15623000, 11825000, 10083333, 10020000, …
## $ `Offensive albertn` <dbl> 15960000, 12800000, 11767500, 10358200, 10000000, …
## $ Quarterback         <dbl> 17228125, 16000000, 14400000, 14100000, 13510000, …
## $ `Running Back`      <dbl> 12955000, 10873833, 9479000, 7700000, 7500000, 703…
## $ Safety              <dbl> 8871428, 8787500, 8282500, 8000000, 7804333, 76527…
## $ `Special Teamer`    <dbl> 4300000, 3725000, 3556176, 3500000, 3250000, 32250…
## $ `Tight End`         <dbl> 8734375, 8591000, 8290000, 7723333, 6974666, 61333…
## $ `Wide Receiver`     <dbl> 16250000, 14175000, 11424000, 11415000, 10800000, …
# 检查数据的列名
colnames(df_input)
##  [1] "year"              "Cornerback"        "Defensive Lineman"
##  [4] "Linebacker"        "Offensive albertn" "Quarterback"
##  [7] "Running Back"      "Safety"            "Special Teamer"
## [10] "Tight End"         "Wide Receiver"

5. 数据预处理

# 从宽数据透视到长数据转换
nfl_salary <- pivot_longer(df_input, cols = "Cornerback":"Wide Receiver",names_to = "position",values_to = "salary")# 删除缺失值的观测
nfl_salary <- na.omit(nfl_salary)# 筛选 Quarterback 的数据
df_plot <- nfl_salary %>% filter(position == "Quarterback")

6. 利用 ggplot2 绘图

# PS: 方便讲解, 我这里进行了拆解, 具体使用时可以组合在一起
# 设置随机种子, 为了再现抖动点, 同时对后续注释很重要
set.seed(12306) # set seed for reproducible jitter points; important for annotation
# as.factor(year), 将年份数据设置为因子型数据类型
gg <- df_plot %>% ggplot(aes(x = as.factor(year), y = salary))
# geom_violin() 绘制小提琴图
gg <- gg + geom_violin(fill = "#013369" )
# geom_jitter() 绘制抖动散点图
gg <- gg + geom_jitter(color = "#DA2127", size = 2, alpha = .4, height = .4, width = .2)
gg <- gg + geom_text(label = "$37,000,000", x = "2017", y = 33000000, color = "#013369", size = 4)
gg <- gg + annotate(geom = "curve", x = "2017", y = 34000000, xend = "2018", yend = 37000000, curvature = "-.3",arrow = arrow(length = unit(2, "mm")),color = "#013369")
gg <- gg + scale_x_discrete(breaks = seq(2011, 2018, 1))
gg <- gg + scale_y_continuous(breaks = seq(0, 40000000, by = 5000000), labels = dollar_format())
gg <- gg + labs(title = "美国国家橄榄球联盟四分卫薪水情况",x = NULL,y = NULL,caption = "NFL Quarterback Salaries\ngraph by 萤火之森")
# theme_minimal() 去坐标轴边框的最小化主题
gg <- gg + theme_minimal()
# theme() 实现对非数据元素的调整, 对结果进行进一步渲染, 使之更加美观
gg <- gg + theme(# panel.grid.major 主网格线, 这一步表示删除主要网格线panel.grid.major = element_blank(),# panel.grid.minor 次网格线, 这一步表示删除次要网格线panel.grid.minor = element_blank(),# axis.text 坐标轴刻度文本axis.text = element_text(color = "black", size = 12),# axis.title 坐标轴标题axis.title = element_text(color = "black", size = 10),# plot.title 主标题plot.title = element_text(color = "black", size = 20, face = "bold"),# plot.subtitle 次要标题plot.subtitle = element_text(color = "red", size = 12),# plot.background 图片背景plot.background = element_rect(fill = "white"))

7. 保存图片到 PDF 和 PNG

gg

filename = '20180409-A-01'
ggsave(filename = paste0(filename, ".pdf"), width = 8.6, height = 5, device = cairo_pdf)
ggsave(filename = paste0(filename, ".png"), width = 8.6, height = 5, dpi = 100, device = "png")

8. session-info

sessionInfo()
## R version 4.2.1 (2022-06-23)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.4 LTS
##
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3
##
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base
##
## other attached packages:
##  [1] showtext_0.9-5  showtextdb_3.0  sysfonts_0.8.8  forcats_0.5.2
##  [5] stringr_1.4.1   dplyr_1.0.10    purrr_0.3.4     readr_2.1.2
##  [9] tidyr_1.2.1     tibble_3.1.8    tidyverse_1.3.2 ggplot2_3.3.6
## [13] scales_1.2.1
##
## loaded via a namespace (and not attached):
##  [1] lubridate_1.8.0     assertthat_0.2.1    digest_0.6.29
##  [4] utf8_1.2.2          R6_2.5.1            cellranger_1.1.0
##  [7] backports_1.4.1     reprex_2.0.2        evaluate_0.16
## [10] highr_0.9           httr_1.4.4          pillar_1.8.1
## [13] rlang_1.0.5         googlesheets4_1.0.1 readxl_1.4.1
## [16] rstudioapi_0.14     jquerylib_0.1.4     rmarkdown_2.16
## [19] textshaping_0.3.6   googledrive_2.0.0   munsell_0.5.0
## [22] broom_1.0.1         compiler_4.2.1      modelr_0.1.9
## [25] xfun_0.32           systemfonts_1.0.4   pkgconfig_2.0.3
## [28] htmltools_0.5.3     tidyselect_1.1.2    fansi_1.0.3
## [31] crayon_1.5.1        tzdb_0.3.0          dbplyr_2.2.1
## [34] withr_2.5.0         grid_4.2.1          jsonlite_1.8.0
## [37] gtable_0.3.1        lifecycle_1.0.1     DBI_1.1.3
## [40] magrittr_2.0.3      cli_3.3.0           stringi_1.7.8
## [43] cachem_1.0.6        farver_2.1.1        fs_1.5.2
## [46] xml2_1.3.3          bslib_0.4.0         ragg_1.2.3
## [49] ellipsis_0.3.2      generics_0.1.3      vctrs_0.4.1
## [52] tools_4.2.1         glue_1.6.2          hms_1.1.2
## [55] fastmap_1.1.0       yaml_2.3.5          colorspace_2.0-3
## [58] gargle_1.2.1        rvest_1.0.3         knitr_1.40
## [61] haven_2.5.1         sass_0.4.2

测试数据

配套数据下载:nfl_salary.xlsx

20180409-A · NFL Positional Salaries · ggplot2, 小提琴图 散点图 · R 语言数据可视化 案例 源码相关推荐

  1. 20180416-H · Global Mortality · ggplot2 地图 gganimate 动图 动态地图 · R 语言数据可视化 案例 源码

    所有作品合集传送门: Tidy Tuesday 2018 年合集传送门: 2018 Global Mortality What do people die from? 在过去的几个世纪里,世界发生了很 ...

  2. 20180416-F · Global Mortality · ggplot2 地图 热力图 条形图 · R 语言数据可视化 案例 源码

    所有作品合集传送门: Tidy Tuesday 2018 年合集传送门: 2018 Global Mortality What do people die from? 在过去的几个世纪里,世界发生了很 ...

  3. 20180409-C · NFL Positional Salaries · ggplot2, 折线图 散点图 分面图 · R 语言数据可视化 案例 源码

    所有作品合集传送门: Tidy Tuesday 2018 年合集传送门: 2018 NFL Positional Salaries NFL Positional Salaries Tidy Tuesd ...

  4. 20180409-B · NFL Positional Salaries · ggplot2, 峦峰图, gganimate 动态图 · R 语言数据可视化 案例 源码

    所有作品合集传送门: Tidy Tuesday 2018 年合集传送门: 2018 NFL Positional Salaries NFL Positional Salaries Tidy Tuesd ...

  5. 20180416-E · Global Mortality · ggplot2 plotly 动态折线图 · R 语言数据可视化 案例 源码

    所有作品合集传送门: Tidy Tuesday 2018 年合集传送门: 2018 Global Mortality What do people die from? 在过去的几个世纪里,世界发生了很 ...

  6. 20180402-D · US Tuition Costs · ggplot2 geofacet 按地理位置分面的数据可视化 · R 语言数据可视化 案例 源码

    所有作品合集传送门: Tidy Tuesday 2018 年合集传送门: 2018 US Tuition Costs Average Tuition and Educational Attainmen ...

  7. 20180710-A · Craft Beer USA · ggplot2 geom_col 条形图 facet_geo theme 字体设置 画图 图例 · R 语言数据可视化 案例 源码

    所有作品合集传送门: Tidy Tuesday 2018 年合集传送门: 2018 Craft Beer USA 欢迎来到ggplot2的世界! ggplot2是一个用来绘制统计图形的 R 软件包.它 ...

  8. 20180423-B · Australian Salaries by Gender · ggplot2 ggalt geom_dumbbell 棒棒糖图 哑铃图 · R 语言数据可视化 案例 源码

    所有作品合集传送门: Tidy Tuesday 2018 年合集传送门: 2018 Australian Salaries by Gender 欢迎来到ggplot2的世界! ggplot2是一个用来 ...

  9. 20180828-B · NFL Stats · ggplot2 geom_tile 热力图 热图 theme guides 字体设置 画图 图例 背景 注释 标签 · R 语言数据可视化 案例 源码

    所有作品合集传送门: Tidy Tuesday 2018 年合集传送门: 2018 NFL Stats 欢迎来到ggplot2的世界! ggplot2是一个用来绘制统计图形的 R 软件包.它可以绘制出 ...

最新文章

  1. redis系列:通过文章点赞排名案例学习sortedset命令
  2. 树莓派:和电脑之间的串口编程,以及树莓派的备份
  3. git 忽略文件失效
  4. Github标星24.9k!适合初学者的有趣、入门级的开源项目
  5. 鸡啄米vc++2010系列35(工具栏资源及CToolBar类)
  6. 现在给你三百台服务器,你怎么对他们进行管理?
  7. 陀螺仪、罗经、IMU、MEMS四者的区别
  8. exif.js html图片旋转,解决图片显示 Exif.js更改图片的显示方向
  9. C++局部重载new delete方法剖析
  10. 积分竞猜网php源码_贵州省网络安全知识竞赛个人赛Writeup
  11. fm -rf 删除 恢复
  12. 台达 PLC 绝对定位
  13. VMware Workstation创建Windows 8虚拟机
  14. 【Android】安卓四大组件之内容提供者
  15. svg实现多个元素拖拽
  16. Araxis Merge对比软件工具
  17. 创客路上,跟着嘻多猴快乐出发!
  18. 显示器定时开启和关闭小工具
  19. 车易加:今日油价|油价上涨10元/吨,油价又要重新上涨?
  20. Androidpcm格式音频编解码及播放,socket文件传输通讯,soundTouch变声框架 合成的一款仿微信语音按住说话的demo

热门文章

  1. 宝德服务器 raid制作,宝德服务器RAID设置
  2. 多表查询与7种JOINS的实现
  3. 记一次Eclipse上tomcat启动失败的解决方案
  4. 资产 = 负债 + 所有者权益
  5. 已解决:Downloading https://github.com/ultralytics.../yolov5n6.pt to yolov5n6——ubuntu18.4-yolov5报错记录[02]
  6. zuul动态配置路由规则,从DB读取
  7. 避坑宝典:如何选择HTML5游戏引擎
  8. 深刻理解正则化力度与权重的关系图Ridge coefficients as a function of the regularization
  9. 双向数据绑定原理(原生js实现双向数据绑定)
  10. 考研数据结构之线性表(1.7)——练习题之A和B两个顺序表中相同元素组成一个新的从大到小的有序顺序表C的算法(C表示)