├── .gitignore ├── ggplot2-extensions-cran-task-view.Rproj ├── README.md ├── README.Rmd ├── draft-proposal.md └── draft-proposal.Rmd /.gitignore: -------------------------------------------------------------------------------- 1 | .Rproj.user 2 | .Rhistory 3 | .RData 4 | .Ruserdata 5 | -------------------------------------------------------------------------------- /ggplot2-extensions-cran-task-view.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: pdfLaTeX 14 | 15 | AutoAppendNewline: Yes 16 | StripTrailingWhitespace: Yes 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # CRAN Task View for ggplot2 Extensions 3 | 4 | This repository is used to collaborate on the CRAN Task View for ggplot2 5 | Extensions. The goal of this task view is to provide a comprehensive 6 | list of packages that extend ggplot2. 7 | 8 | It is currently work in progress. See also: 9 | 10 | -------------------------------------------------------------------------------- /README.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | output: github_document 3 | --- 4 | 5 | ```{r, include = FALSE} 6 | knitr::opts_chunk$set( 7 | collapse = TRUE, 8 | comment = "#>" 9 | ) 10 | ``` 11 | 12 | # CRAN Task View for ggplot2 Extensions 13 | 14 | This repository is used to collaborate on the CRAN Task View for ggplot2 Extensions. 15 | The goal of this task view is to provide a comprehensive list of packages that 16 | extend ggplot2. 17 | 18 | It is currently work in progress. See also: 19 | https://github.com/ggplot2-extenders/ggplot-extension-club/discussions/82# 20 | -------------------------------------------------------------------------------- /draft-proposal.md: -------------------------------------------------------------------------------- 1 | 2 | # Draft Proposal 3 | 4 | ## Preamble 5 | 6 | This document is a draft proposal. It has no formal status and is 7 | subject to change. It has not been submitted. 8 | 9 | ## Scope 10 | 11 | *TODO* Add some introduction on Graphics or Grammar and ggplot2 12 | 13 | Proposed scope: “CRAN packages self-identifying as ggplot2 extensions” 14 | To be decided: “Alternatives to ggplot2 for implementing Graphics of 15 | Grammar” 16 | 17 | ## Related CRAN Task Views 18 | 19 | *TODO* [Dynamic 20 | Visualizations](https://cran.r-project.org/web/views/DynamicVisualizations.html) 21 | 22 | *TODO* The following Task View is not on CRAN. Check with maintainers to 23 | assert the current status. [Static 24 | Visualizations](https://github.com/dicook/ctv-staticvisualizations/blob/main/StaticVisualizations.md) 25 | 26 | ## Packages 27 | 28 | For now, the code below is used to create a list of packages that extend 29 | ggplot2: 30 | 31 | ``` r 32 | library(dplyr) 33 | library(httr2) 34 | library(readr) 35 | library(stringr) 36 | library(yaml) 37 | library(tools) 38 | 39 | gg_pkgs_cran <- 40 | CRAN_package_db() |> 41 | filter( 42 | str_detect(Package, "^gg|^GG|gg$|GG$"), 43 | str_detect(Depends, "ggplot2") | str_detect(Imports, "ggplot2") 44 | ) 45 | 46 | gg_pkgs_gallery <- 47 | "https://raw.githubusercontent.com/ggplot2-exts/gallery/refs/heads/gh-pages/_config.yml" |> 48 | request() |> 49 | req_perform() |> 50 | resp_body_string() |> 51 | (\(x) read_yaml(text = x))() 52 | 53 | gg_pkgs_gallery <- 54 | gg_pkgs_gallery$widgets |> 55 | bind_rows() 56 | 57 | gg_pkg_joined <- 58 | full_join( 59 | x = gg_pkgs_cran, 60 | y = gg_pkgs_gallery, 61 | by = c(Package = "name") 62 | ) 63 | 64 | write_csv(gg_pkg_joined, "gg-pkgs.csv") 65 | ``` 66 | 67 | We need to think of a way of presenting the list of packages: which are 68 | core packages?; what is a good way to present the packages in a 69 | structured manner? 70 | 71 | ## Maintainers 72 | 73 | In no particular order: 74 | 75 | - 76 | - 77 | - 78 | 79 | This is a preliminary list of maintainers. 80 | -------------------------------------------------------------------------------- /draft-proposal.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | output: github_document 3 | --- 4 | 5 | ```{r, include = FALSE} 6 | knitr::opts_chunk$set( 7 | collapse = TRUE, 8 | comment = "#>" 9 | ) 10 | ``` 11 | 12 | # Draft Proposal 13 | 14 | ## Preamble 15 | 16 | This document is a draft proposal. It has no formal status and is subject 17 | to change. It has not been submitted. 18 | 19 | ## Scope 20 | 21 | *TODO* Add some introduction on Graphics or Grammar and ggplot2 22 | 23 | Proposed scope: "CRAN packages self-identifying as ggplot2 extensions" 24 | To be decided: "Alternatives to ggplot2 for implementing Graphics of Grammar" 25 | 26 | ## Related CRAN Task Views 27 | 28 | *TODO* 29 | [Dynamic Visualizations](https://cran.r-project.org/web/views/DynamicVisualizations.html) 30 | 31 | *TODO* The following Task View is not on CRAN. Check with maintainers to assert the current status. 32 | [Static Visualizations](https://github.com/dicook/ctv-staticvisualizations/blob/main/StaticVisualizations.md) 33 | 34 | ## Packages 35 | 36 | For now, the code below is used to create a list of packages that extend 37 | ggplot2: 38 | 39 | ```{r list-gg-extensions, warning=FALSE, message=FALSE} 40 | library(dplyr) 41 | library(httr2) 42 | library(readr) 43 | library(stringr) 44 | library(yaml) 45 | library(tools) 46 | 47 | gg_pkgs_cran <- 48 | CRAN_package_db() |> 49 | filter( 50 | str_detect(Package, "^gg|^GG|gg$|GG$"), 51 | str_detect(Depends, "ggplot2") | str_detect(Imports, "ggplot2") 52 | ) 53 | 54 | gg_pkgs_gallery <- 55 | "https://raw.githubusercontent.com/ggplot2-exts/gallery/refs/heads/gh-pages/_config.yml" |> 56 | request() |> 57 | req_perform() |> 58 | resp_body_string() |> 59 | (\(x) read_yaml(text = x))() 60 | 61 | gg_pkgs_gallery <- 62 | gg_pkgs_gallery$widgets |> 63 | bind_rows() 64 | 65 | gg_pkg_joined <- 66 | full_join( 67 | x = gg_pkgs_cran, 68 | y = gg_pkgs_gallery, 69 | by = c(Package = "name") 70 | ) 71 | 72 | write_csv(gg_pkg_joined, "gg-pkgs.csv") 73 | ``` 74 | 75 | We need to think of a way of presenting the list of packages: which are 76 | core packages?; what is a good way to present the packages in a structured 77 | manner? 78 | 79 | ## Maintainers 80 | 81 | In no particular order: 82 | 83 | * 84 | * 85 | * 86 | 87 | This is a preliminary list of maintainers. 88 | --------------------------------------------------------------------------------