class: inverse, left, bottom background-image: url(https://images.unsplash.com/photo-1699100329878-7f28bb780787?q=80&w=1632&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D) background-size: cover # .Large[# Who are the CRAN ggplot2 extenders] ## .small[featuring [{ggedgelist}](https://github.com/EvaMaeRey/ggedgelist)] #### .tiny[Gina Reynolds | 2023-10-25 |Image credit: Jigar Panchal, Upsplash] ??? Title --- # get data... ```r cran_20230905 <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2023/2023-09-19/cran_20230905.csv') package_authors <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2023/2023-09-19/package_authors.csv') ``` --- count: false .panel1-feature-auto[ ```r *library(tidyverse) ``` ] .panel2-feature-auto[ ] --- count: false .panel1-feature-auto[ ```r library(tidyverse) *library(ggedgelist) # development pkg experimental ``` ] .panel2-feature-auto[ ] --- count: false .panel1-feature-auto[ ```r library(tidyverse) library(ggedgelist) # development pkg experimental *library(ggraph) ``` ] .panel2-feature-auto[ ] --- count: false .panel1-feature-auto[ ```r library(tidyverse) library(ggedgelist) # development pkg experimental library(ggraph) *cran_20230905 ``` ] .panel2-feature-auto[ ``` ## # A tibble: 19,838 × 67 ## Package Version Priority Depends Imports LinkingTo Suggests Enhances License ## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> ## 1 A3 1.0.0 <NA> R (>= … <NA> <NA> randomF… <NA> GPL (>… ## 2 AalenJo… 1.0 <NA> <NA> <NA> <NA> knitr, … <NA> GPL (>… ## 3 AATtools 0.0.2 <NA> R (>= … magrit… <NA> <NA> <NA> GPL-3 ## 4 ABACUS 1.0.0 <NA> R (>= … ggplot… <NA> rmarkdo… <NA> GPL-3 ## 5 abasequ… 0.1.0 <NA> <NA> <NA> <NA> <NA> <NA> GPL-3 ## 6 abbrevi… 0.1 <NA> <NA> <NA> <NA> testtha… <NA> GPL-3 ## 7 abbyyR 0.5.5 <NA> R (>= … httr, … <NA> testtha… <NA> MIT + … ## 8 abc 2.2.1 <NA> R (>= … <NA> <NA> <NA> <NA> GPL (>… ## 9 abc.data 1.0 <NA> R (>= … <NA> <NA> <NA> <NA> GPL (>… ## 10 ABC.RAP 0.9.0 <NA> R (>= … graphi… <NA> knitr, … <NA> GPL-3 ## # ℹ 19,828 more rows ## # ℹ 58 more variables: License_is_FOSS <lgl>, License_restricts_use <lgl>, ## # OS_type <chr>, Archs <chr>, MD5sum <chr>, NeedsCompilation <chr>, ## # Additional_repositories <chr>, Author <chr>, `Authors@R` <chr>, ## # Biarch <chr>, BugReports <chr>, BuildKeepEmpty <lgl>, BuildManual <lgl>, ## # BuildResaveData <chr>, BuildVignettes <chr>, Built <lgl>, ## # ByteCompile <chr>, `Classification/ACM` <lgl>, … ``` ] --- count: false .panel1-feature-auto[ ```r library(tidyverse) library(ggedgelist) # development pkg experimental library(ggraph) cran_20230905 %>% * filter(Package %>% * str_detect("^gg|^GG")) ``` ] .panel2-feature-auto[ ``` ## # A tibble: 206 × 67 ## Package Version Priority Depends Imports LinkingTo Suggests Enhances License ## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> ## 1 gg.gap 1.3 <NA> <NA> "ggplo… <NA> <NA> <NA> GPL-3 ## 2 ggalign… 0.1 <NA> <NA> "ggplo… <NA> <NA> <NA> GPL-3 ## 3 ggalign… 1.0.1 <NA> R (>= … "dplyr… <NA> "rmarkd… <NA> MIT + … ## 4 ggallin 0.1.1 <NA> ggplot… "scale… <NA> "knitr,… <NA> LGPL-3 ## 5 ggalluv… 0.12.5 <NA> R (>= … "stats… <NA> "grid, … <NA> GPL-3 ## 6 GGally 2.1.2 <NA> R (>= … "dplyr… <NA> "broom … <NA> GPL (>… ## 7 ggalt 0.4.0 <NA> R (>= … "utils… <NA> "testth… <NA> AGPL +… ## 8 ggamma 1.0.1 <NA> R (>= … <NA> <NA> "testth… <NA> MIT + … ## 9 gganima… 1.0.8 <NA> ggplot… "strin… <NA> "magick… <NA> MIT + … ## 10 ggarche… 0.4.2 <NA> R (>= … "ggplo… <NA> <NA> <NA> GPL-3 ## # ℹ 196 more rows ## # ℹ 58 more variables: License_is_FOSS <lgl>, License_restricts_use <lgl>, ## # OS_type <chr>, Archs <chr>, MD5sum <chr>, NeedsCompilation <chr>, ## # Additional_repositories <chr>, Author <chr>, `Authors@R` <chr>, ## # Biarch <chr>, BugReports <chr>, BuildKeepEmpty <lgl>, BuildManual <lgl>, ## # BuildResaveData <chr>, BuildVignettes <chr>, Built <lgl>, ## # ByteCompile <chr>, `Classification/ACM` <lgl>, … ``` ] --- count: false .panel1-feature-auto[ ```r library(tidyverse) library(ggedgelist) # development pkg experimental library(ggraph) cran_20230905 %>% filter(Package %>% str_detect("^gg|^GG")) %>% * filter(Imports %>% * str_detect("ggplot2")| * Depends %>% str_detect("ggplot2")) ``` ] .panel2-feature-auto[ ``` ## # A tibble: 185 × 67 ## Package Version Priority Depends Imports LinkingTo Suggests Enhances License ## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> ## 1 gg.gap 1.3 <NA> <NA> "ggplo… <NA> <NA> <NA> GPL-3 ## 2 ggalign… 0.1 <NA> <NA> "ggplo… <NA> <NA> <NA> GPL-3 ## 3 ggalign… 1.0.1 <NA> R (>= … "dplyr… <NA> "rmarkd… <NA> MIT + … ## 4 ggallin 0.1.1 <NA> ggplot… "scale… <NA> "knitr,… <NA> LGPL-3 ## 5 ggalluv… 0.12.5 <NA> R (>= … "stats… <NA> "grid, … <NA> GPL-3 ## 6 GGally 2.1.2 <NA> R (>= … "dplyr… <NA> "broom … <NA> GPL (>… ## 7 ggalt 0.4.0 <NA> R (>= … "utils… <NA> "testth… <NA> AGPL +… ## 8 gganima… 1.0.8 <NA> ggplot… "strin… <NA> "magick… <NA> MIT + … ## 9 ggarche… 0.4.2 <NA> R (>= … "ggplo… <NA> <NA> <NA> GPL-3 ## 10 ggasym 0.1.6 <NA> R (>= … "dplyr… <NA> "knitr,… <NA> GPL-3 ## # ℹ 175 more rows ## # ℹ 58 more variables: License_is_FOSS <lgl>, License_restricts_use <lgl>, ## # OS_type <chr>, Archs <chr>, MD5sum <chr>, NeedsCompilation <chr>, ## # Additional_repositories <chr>, Author <chr>, `Authors@R` <chr>, ## # Biarch <chr>, BugReports <chr>, BuildKeepEmpty <lgl>, BuildManual <lgl>, ## # BuildResaveData <chr>, BuildVignettes <chr>, Built <lgl>, ## # ByteCompile <chr>, `Classification/ACM` <lgl>, … ``` ] --- count: false .panel1-feature-auto[ ```r library(tidyverse) library(ggedgelist) # development pkg experimental library(ggraph) cran_20230905 %>% filter(Package %>% str_detect("^gg|^GG")) %>% filter(Imports %>% str_detect("ggplot2")| Depends %>% str_detect("ggplot2")) %>% * select(Package) ``` ] .panel2-feature-auto[ ``` ## # A tibble: 185 × 1 ## Package ## <chr> ## 1 gg.gap ## 2 ggaligner ## 3 ggalignment ## 4 ggallin ## 5 ggalluvial ## 6 GGally ## 7 ggalt ## 8 gganimate ## 9 ggarchery ## 10 ggasym ## # ℹ 175 more rows ``` ] --- count: false .panel1-feature-auto[ ```r library(tidyverse) library(ggedgelist) # development pkg experimental library(ggraph) cran_20230905 %>% filter(Package %>% str_detect("^gg|^GG")) %>% filter(Imports %>% str_detect("ggplot2")| Depends %>% str_detect("ggplot2")) %>% select(Package) %>% * left_join(package_authors %>% * mutate(authorsR = authorsR %>% * str_replace(" ", "\n"))) ``` ] .panel2-feature-auto[ ``` ## # A tibble: 415 × 2 ## Package authorsR ## <chr> <chr> ## 1 gg.gap "Jiacheng\nLou" ## 2 gg.gap "Jing\nZhang" ## 3 gg.gap "Yizhu\nLvy" ## 4 gg.gap "Zhi\nJin" ## 5 ggaligner "Mohamed\nSoudy" ## 6 ggalignment "Afton\nCoombs" ## 7 ggalignment "Tan\nHo" ## 8 ggallin "Steven\nE. Pav" ## 9 ggalluvial "Jason\nCory Brunson" ## 10 ggalluvial "Quentin\nD. Read" ## # ℹ 405 more rows ``` ] --- count: false .panel1-feature-auto[ ```r library(tidyverse) library(ggedgelist) # development pkg experimental library(ggraph) cran_20230905 %>% filter(Package %>% str_detect("^gg|^GG")) %>% filter(Imports %>% str_detect("ggplot2")| Depends %>% str_detect("ggplot2")) %>% select(Package) %>% left_join(package_authors %>% mutate(authorsR = authorsR %>% str_replace(" ", "\n"))) %>% * ggedgelist:::ggedgelist_quick(layout = "fr", * include_names = T) ``` ] .panel2-feature-auto[ <img src="ggedgelist-gg-cran-extenders_files/figure-html/feature_auto_09_output-1.png" width="90%" /> ] --- count: false .panel1-feature-auto[ ```r library(tidyverse) library(ggedgelist) # development pkg experimental library(ggraph) cran_20230905 %>% filter(Package %>% str_detect("^gg|^GG")) %>% filter(Imports %>% str_detect("ggplot2")| Depends %>% str_detect("ggplot2")) %>% select(Package) %>% left_join(package_authors %>% mutate(authorsR = authorsR %>% str_replace(" ", "\n"))) %>% ggedgelist:::ggedgelist_quick(layout = "fr", include_names = T) + * labs(title = "Who are the authors of the\nggplot2 extension packages on CRAN?") ``` ] .panel2-feature-auto[ <img src="ggedgelist-gg-cran-extenders_files/figure-html/feature_auto_10_output-1.png" width="90%" /> ] --- count: false .panel1-feature-auto[ ```r library(tidyverse) library(ggedgelist) # development pkg experimental library(ggraph) cran_20230905 %>% filter(Package %>% str_detect("^gg|^GG")) %>% filter(Imports %>% str_detect("ggplot2")| Depends %>% str_detect("ggplot2")) %>% select(Package) %>% left_join(package_authors %>% mutate(authorsR = authorsR %>% str_replace(" ", "\n"))) %>% ggedgelist:::ggedgelist_quick(layout = "fr", include_names = T) + labs(title = "Who are the authors of the\nggplot2 extension packages on CRAN?") + * theme_void(base_size = 50) ``` ] .panel2-feature-auto[ <img src="ggedgelist-gg-cran-extenders_files/figure-html/feature_auto_11_output-1.png" width="90%" /> ] --- count: false .panel1-feature-auto[ ```r library(tidyverse) library(ggedgelist) # development pkg experimental library(ggraph) cran_20230905 %>% filter(Package %>% str_detect("^gg|^GG")) %>% filter(Imports %>% str_detect("ggplot2")| Depends %>% str_detect("ggplot2")) %>% select(Package) %>% left_join(package_authors %>% mutate(authorsR = authorsR %>% str_replace(" ", "\n"))) %>% ggedgelist:::ggedgelist_quick(layout = "fr", include_names = T) + labs(title = "Who are the authors of the\nggplot2 extension packages on CRAN?") + theme_void(base_size = 50) + * labs(caption = "Graph includes the subset of '^gg|^GG' packages from #TidyTuesday '2023-09-19/cran_20230905.csv' which list ggplot2 in Depends or Imports. Authors are from #TidyTuesday '2023-09-19/package_authors.csv'" %>% str_wrap(80)) ``` ] .panel2-feature-auto[ <img src="ggedgelist-gg-cran-extenders_files/figure-html/feature_auto_12_output-1.png" width="90%" /> ] <style> .panel1-feature-auto { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-feature-auto { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-feature-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- <img src="ggedgelist-gg-cran-extenders_files/figure-html/feature-1.png" width="45%" style="display: block; margin: auto;" /> --- ### Contribute - https://github.com/EvaMaeRey/ggedgelist --- ### See ggraph and tidygraph - https://github.com/thomasp85/ggraph --- ### Check out flipbookr, used to build this featurette - https://github.com/EvaMaeRey/flipbookr - discussion: https://github.com/EvaMaeRey/flipbookr/blob/master/docs/draft_jasa_submission.pdf --- ### Check out more featurettes - https://EvaMaeRey.github.io/featurette <style type="text/css"> .remark-code{line-height: 1.5; font-size: 100%} @media print { .has-continuation { display: block; } } </style>