Visualizations with statistical details

Visualizations with statistical details: The 'ggstatsplot' approach - Published in JOSS (2021)

https://github.com/indrajeetpatil/ggstatsplot

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    1 of 11 committers (9.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

bayes-factors datascience dataviz effect-size ggplot-extension hypothesis-testing non-parametric-statistics r regression-models statistical-analysis

Keywords from Contributors

tidy-data contingency-table pypi annotations mesh

Scientific Fields

Materials Science Physical Sciences - 40% confidence
Economics Social Sciences - 40% confidence
Last synced: 4 months ago · JSON representation

Repository

Enhancing {ggplot2} plots with statistical analysis 📊📣

Basic Info
Statistics
  • Stars: 2,122
  • Watchers: 44
  • Forks: 200
  • Open Issues: 73
  • Releases: 45
Topics
bayes-factors datascience dataviz effect-size ggplot-extension hypothesis-testing non-parametric-statistics r regression-models statistical-analysis
Created almost 8 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Codeowners Support Codemeta

README.Rmd

---
output: github_document
---

  

```{r}
#| echo = FALSE,
#| warning = FALSE,
#| message = FALSE
## show me all columns
options(
  tibble.width      = Inf,
  pillar.bold       = TRUE,
  pillar.neg        = TRUE,
  pillar.subtle_num = TRUE,
  pillar.min_chars  = Inf
)

knitr::opts_chunk$set(
  collapse  = TRUE,
  dpi       = 150, ## change to 300 once on CRAN
  warning   = FALSE,
  message   = FALSE,
  out.width = "100%",
  comment   = "#>",
  fig.path  = "man/figures/README-"
)

library(ggstatsplot)
```

## `{ggstatsplot}`: `{ggplot2}` Based Plots with Statistical Details 

Status | Usage | Miscellaneous
----------------- | ----------------- | ----------------- 
[![R build status](https://github.com/IndrajeetPatil/ggstatsplot/workflows/R-CMD-check/badge.svg)](https://github.com/IndrajeetPatil/ggstatsplot) | [![Total downloads](https://cranlogs.r-pkg.org/badges/grand-total/ggstatsplot?color=blue)](https://CRAN.R-project.org/package=ggstatsplot) | [![codecov](https://codecov.io/gh/IndrajeetPatil/ggstatsplot/branch/main/graph/badge.svg?token=ddrxwt0bj8)](https://app.codecov.io/gh/IndrajeetPatil/ggstatsplot)
[![lifecycle](https://img.shields.io/badge/lifecycle-maturing-blue.svg)](https://lifecycle.r-lib.org/articles/stages.html) | [![Daily downloads](https://cranlogs.r-pkg.org/badges/last-day/ggstatsplot?color=blue)](https://CRAN.R-project.org/package=ggstatsplot) | [![DOI](https://joss.theoj.org/papers/10.21105/joss.03167/status.svg)](https://doi.org/10.21105/joss.03167)

## Raison d'être 

> "What is to be sought in designs for the display of information is the clear
portrayal of complexity. Not the complication of the simple; rather ... the
revelation of the complex."
- Edward R. Tufte

[`{ggstatsplot}`](https://indrajeetpatil.github.io/ggstatsplot/) is an extension
of [`{ggplot2}`](https://github.com/tidyverse/ggplot2) package for creating
graphics with details from statistical tests included in the information-rich
plots themselves. In a typical exploratory data analysis workflow, data
visualization and statistical modeling are two different phases: visualization
informs modeling, and modeling in its turn can suggest a different visualization
method, and so on and so forth. The central idea of `{ggstatsplot}` is simple:
combine these two phases into one in the form of graphics with statistical
details, which makes data exploration simpler and faster.

## Installation

| Type        | Command                                  |
| :---------- | :--------------------------------------- |
| Release     | `install.packages("ggstatsplot")`        |
| Development | `pak::pak("IndrajeetPatil/ggstatsplot")` |

## Citation

If you want to cite this package in a scientific journal or in any other
context, run the following code in your `R` console:

```{r}
#| label = "citation",
#| comment = ""
citation("ggstatsplot")
```

## Acknowledgments

I would like to thank all the contributors to `{ggstatsplot}` who pointed out
bugs or requested features I hadn't considered. I would especially like to thank
other package developers (especially Daniel Lüdecke, Dominique Makowski, Mattan
S. Ben-Shachar, Brenton Wiernik, Patrick Mair, Salvatore Mangiafico, etc.) who
have patiently and diligently answered my relentless questions and supported
feature requests in their projects. I also want to thank Chuck Powell for his
initial contributions to the package.

The hexsticker was generously designed by Sarah Otterstetter (Max Planck
Institute for Human Development, Berlin). This package has also benefited from
the larger `#rstats` community on Twitter, LinkedIn, and `StackOverflow`.

Thanks are also due to my postdoc advisers (Mina Cikara and Fiery Cushman at
Harvard University; Iyad Rahwan at Max Planck Institute for Human Development)
who patiently supported me spending hundreds (?) of hours working on this
package rather than what I was paid to do. 😁

## Documentation and Examples

To see the detailed documentation for each function in the stable **CRAN**
version of the package, see:

  - [Publication](https://joss.theoj.org/papers/10.21105/joss.03167)

  - [Presentation](https://indrajeetpatil.github.io/intro-to-ggstatsplot/#/ggstatsplot-informative-statistical-visualizations)
  
  - [Vignettes](https://indrajeetpatil.github.io/ggstatsplot/articles/)

## Summary of available plots

| Function           | Plot                      | Description                                     |
| :----------------- | :------------------------ | :---------------------------------------------- |
| `ggbetweenstats()` | **violin plots**          | for comparisons *between* groups/conditions     |
| `ggwithinstats()`  | **violin plots**          | for comparisons *within* groups/conditions      |
| `gghistostats()`   | **histograms**            | for distribution about numeric variable         |
| `ggdotplotstats()` | **dot plots/charts**      | for distribution about labeled numeric variable |
| `ggscatterstats()` | **scatterplots**          | for correlation between two variables           |
| `ggcorrmat()`      | **correlation matrices**  | for correlations between multiple variables     |
| `ggpiestats()`     | **pie charts**            | for categorical data                            |
| `ggbarstats()`     | **bar charts**            | for categorical data                            |
| `ggcoefstats()`    | **dot-and-whisker plots** | for regression models and meta-analysis         |

In addition to these basic plots, `{ggstatsplot}` also provides **`grouped_`**
versions (see below) that makes it easy to repeat the same analysis for
any grouping variable.

## Summary of types of statistical analyses

The table below summarizes all the different types of analyses currently
supported in this package-

| Functions                            | Description                                       | Parametric | Non-parametric | Robust | Bayesian |
| :----------------------------------- | :------------------------------------------------ | :--------- | :------------- | :----- | :------- |
| `ggbetweenstats()`                   | Between group/condition comparisons               | ✅         | ✅             | ✅     | ✅       |
| `ggwithinstats()`                    | Within group/condition comparisons                | ✅         | ✅             | ✅     | ✅       |
| `gghistostats()`, `ggdotplotstats()` | Distribution of a numeric variable                | ✅         | ✅             | ✅     | ✅       |
| `ggcorrmat`                          | Correlation matrix                                | ✅         | ✅             | ✅     | ✅       |
| `ggscatterstats()`                   | Correlation between two variables                 | ✅         | ✅             | ✅     | ✅       |
| `ggpiestats()`, `ggbarstats()`       | Association between categorical variables         | ✅         | ✅             | ❌     | ✅       |
| `ggpiestats()`, `ggbarstats()`       | Equal proportions for categorical variable levels | ✅         | ✅             | ❌     | ✅       |
| `ggcoefstats()`                      | Regression model coefficients                     | ✅         | ✅             | ✅     | ✅       |
| `ggcoefstats()`                      | Random-effects meta-analysis                      | ✅         | ❌             | ✅     | ✅       |

Summary of Bayesian analysis

| Analysis                        | Hypothesis testing | Estimation |
| :------------------------------ | :----------------- | :--------- |
| (one/two-sample) *t*-test       | ✅                 | ✅         |
| one-way ANOVA                   | ✅                 | ✅         |
| correlation                     | ✅                 | ✅         |
| (one/two-way) contingency table | ✅                 | ✅         |
| random-effects meta-analysis    | ✅                 | ✅         |

## Statistical reporting

For **all** statistical tests reported in the plots, the default template abides
by the gold standard for statistical reporting. For example, here are results
from Yuen's test for trimmed means (robust *t*-test):



## Summary of statistical tests and effect sizes

Statistical analysis is carried out by `{statsExpressions}` package, and thus
a summary table of all the statistical tests currently supported across
various functions can be found in article for that package:


## Primary functions

### `ggbetweenstats()`

This function creates either a violin plot, a box plot, or a mix of two for
**between**-group or **between**-condition comparisons with results from
statistical tests in the subtitle. The simplest function call looks like this-

```{r}
#| label = "ggbetweenstats1"
set.seed(123)

ggbetweenstats(
  data  = iris,
  x     = Species,
  y     = Sepal.Length,
  title = "Distribution of sepal length across Iris species"
)
```

**Defaults** return
✅ raw data + distributions
✅ descriptive statistics
✅ inferential statistics
✅ effect size + CIs
✅ pairwise comparisons
✅ Bayesian hypothesis-testing
✅ Bayesian estimation
A number of other arguments can be specified to make this plot even more informative or change some of the default options. Additionally, there is also a `grouped_` variant of this function that makes it easy to repeat the same operation across a **single** grouping variable: ```{r} #| label = "ggbetweenstats2", #| fig.height = 8, #| fig.width = 12 set.seed(123) grouped_ggbetweenstats( data = dplyr::filter(movies_long, genre %in% c("Action", "Comedy")), x = mpaa, y = length, grouping.var = genre, ggsignif.args = list(textsize = 4, tip_length = 0.01), p.adjust.method = "bonferroni", palette = "default_jama", package = "ggsci", plotgrid.args = list(nrow = 1), annotation.args = list(title = "Differences in movie length by mpaa ratings for different genres") ) ``` Details about underlying functions used to create graphics and statistical tests carried out can be found in the function documentation: For more, also read the following vignette: ### `ggwithinstats()` `ggbetweenstats()` function has an identical twin function `ggwithinstats()` for repeated measures designs that behaves in the same fashion with a few minor tweaks introduced to properly visualize the repeated measures design. As can be seen from an example below, the only difference between the plot structure is that now the group means are connected by paths to highlight the fact that these data are paired with each other. ```{r} #| label = "ggwithinstats1", #| fig.width = 8, #| fig.height = 6 set.seed(123) library(WRS2) ## for data library(afex) ## to run ANOVA ggwithinstats( data = WineTasting, x = Wine, y = Taste, title = "Wine tasting" ) ``` **Defaults** return
✅ raw data + distributions
✅ descriptive statistics
✅ inferential statistics
✅ effect size + CIs
✅ pairwise comparisons
✅ Bayesian hypothesis-testing
✅ Bayesian estimation
As with the `ggbetweenstats()`, this function also has a `grouped_` variant that makes repeating the same analysis across a single grouping variable quicker. We will see an example with only repeated measurements- ```{r} #| label = "ggwithinstats2", #| fig.height = 6, #| fig.width = 14 set.seed(123) grouped_ggwithinstats( data = dplyr::filter(bugs_long, region %in% c("Europe", "North America"), condition %in% c("LDLF", "LDHF")), x = condition, y = desire, type = "np", xlab = "Condition", ylab = "Desire to kill an artrhopod", grouping.var = region ) ``` Details about underlying functions used to create graphics and statistical tests carried out can be found in the function documentation: For more, also read the following vignette: ### `gghistostats()` To visualize the distribution of a single variable and check if its mean is significantly different from a specified value with a one-sample test, `gghistostats()` can be used. ```{r} #| label = "gghistostats1", #| fig.width = 8 set.seed(123) gghistostats( data = ggplot2::msleep, x = awake, title = "Amount of time spent awake", test.value = 12, binwidth = 1 ) ``` **Defaults** return
✅ counts + proportion for bins
✅ descriptive statistics
✅ inferential statistics
✅ effect size + CIs
✅ Bayesian hypothesis-testing
✅ Bayesian estimation
There is also a `grouped_` variant of this function that makes it easy to repeat the same operation across a **single** grouping variable: ```{r} #| label = "gghistostats2", #| fig.height = 6, #| fig.width = 12 set.seed(123) grouped_gghistostats( data = dplyr::filter(movies_long, genre %in% c("Action", "Comedy")), x = budget, test.value = 50, type = "nonparametric", xlab = "Movies budget (in million US$)", grouping.var = genre, ggtheme = ggthemes::theme_tufte(), ## modify the defaults from `{ggstatsplot}` for each plot plotgrid.args = list(nrow = 1), annotation.args = list(title = "Movies budgets for different genres") ) ``` Details about underlying functions used to create graphics and statistical tests carried out can be found in the function documentation: For more, also read the following vignette: ### `ggdotplotstats()` This function is similar to `gghistostats()`, but is intended to be used when the numeric variable also has a label. ```{r} #| label = "ggdotplotstats1", #| fig.height = 10, #| fig.width = 8 set.seed(123) ggdotplotstats( data = dplyr::filter(gapminder::gapminder, continent == "Asia"), y = country, x = lifeExp, test.value = 55, type = "robust", title = "Distribution of life expectancy in Asian continent", xlab = "Life expectancy" ) ``` **Defaults** return
✅descriptives (centrality measure + uncertainty + sample size)
✅ inferential statistics
✅ effect size + CIs
✅ Bayesian hypothesis-testing
✅ Bayesian estimation
As with the rest of the functions in this package, there is also a `grouped_` variant of this function to facilitate looping the same operation for all levels of a single grouping variable. ```{r} #| label = "ggdotplotstats2", #| fig.height = 6, #| fig.width = 12 set.seed(123) grouped_ggdotplotstats( data = dplyr::filter(ggplot2::mpg, cyl %in% c("4", "6")), x = cty, y = manufacturer, type = "bayes", xlab = "city miles per gallon", ylab = "car manufacturer", grouping.var = cyl, test.value = 15.5, point.args = list(color = "red", size = 5, shape = 13), annotation.args = list(title = "Fuel economy data") ) ``` Details about underlying functions used to create graphics and statistical tests carried out can be found in the function documentation: For more, also read the following vignette: ### `ggscatterstats()` This function creates a scatterplot with marginal distributions overlaid on the axes and results from statistical tests in the subtitle: ```{r} #| label = "ggscatterstats1", #| fig.height = 6 ggscatterstats( data = ggplot2::msleep, x = sleep_rem, y = awake, xlab = "REM sleep (in hours)", ylab = "Amount of time spent awake (in hours)", title = "Understanding mammalian sleep" ) ``` **Defaults** return
✅ raw data + distributions
✅ marginal distributions
✅ inferential statistics
✅ effect size + CIs
✅ Bayesian hypothesis-testing
✅ Bayesian estimation
There is also a `grouped_` variant of this function that makes it easy to repeat the same operation across a **single** grouping variable. ```{r} #| label = "ggscatterstats2", #| fig.height = 8, #| fig.width = 14 set.seed(123) grouped_ggscatterstats( data = dplyr::filter(movies_long, genre %in% c("Action", "Comedy")), x = rating, y = length, grouping.var = genre, label.var = title, label.expression = length > 200, xlab = "IMDB rating", ggtheme = ggplot2::theme_grey(), ggplot.component = list(ggplot2::scale_x_continuous(breaks = seq(2, 9, 1), limits = (c(2, 9)))), plotgrid.args = list(nrow = 1), annotation.args = list(title = "Relationship between movie length and IMDB ratings") ) ``` Details about underlying functions used to create graphics and statistical tests carried out can be found in the function documentation: For more, also read the following vignette: ### `ggcorrmat` `ggcorrmat` makes a correlalogram (a matrix of correlation coefficients) with minimal amount of code. Just sticking to the defaults itself produces publication-ready correlation matrices. But, for the sake of exploring the available options, let's change some of the defaults. For example, multiple aesthetics-related arguments can be modified to change the appearance of the correlation matrix. ```{r} #| label = "ggcorrmat1" set.seed(123) ## as a default this function outputs a correlation matrix plot ggcorrmat( data = ggplot2::msleep, colors = c("#B2182B", "white", "#4D4D4D"), title = "Correlalogram for mammals sleep dataset", subtitle = "sleep units: hours; weight units: kilograms" ) ``` **Defaults** return
✅ effect size + significance
✅ careful handling of `NA`s If there are `NA`s present in the selected variables, the legend will display minimum, median, and maximum number of pairs used for correlation tests. There is also a `grouped_` variant of this function that makes it easy to repeat the same operation across a **single** grouping variable: ```{r} #| label = "ggcorrmat2", #| fig.height = 6, #| fig.width = 10 set.seed(123) grouped_ggcorrmat( data = dplyr::filter(movies_long, genre %in% c("Action", "Comedy")), type = "robust", colors = c("#cbac43", "white", "#550000"), grouping.var = genre, matrix.type = "lower" ) ``` Details about underlying functions used to create graphics and statistical tests carried out can be found in the function documentation: For more, also read the following vignette: ### `ggpiestats()` This function creates a pie chart for categorical or nominal variables with results from contingency table analysis (Pearson's chi-squared test for between-subjects design and McNemar's chi-squared test for within-subjects design) included in the subtitle of the plot. If only one categorical variable is entered, results from one-sample proportion test (i.e., a chi-squared goodness of fit test) will be displayed as a subtitle. To study an interaction between two categorical variables: ```{r} #| label = "ggpiestats1", #| fig.height = 4, #| fig.width = 8 set.seed(123) ggpiestats( data = mtcars, x = am, y = cyl, package = "wesanderson", palette = "Royal1", title = "Dataset: Motor Trend Car Road Tests", legend.title = "Transmission" ) ``` **Defaults** return
✅ descriptives (frequency + %s)
✅ inferential statistics
✅ effect size + CIs
✅ Goodness-of-fit tests
✅ Bayesian hypothesis-testing
✅ Bayesian estimation
There is also a `grouped_` variant of this function that makes it easy to repeat the same operation across a **single** grouping variable. Following example is a case where the theoretical question is about proportions for different levels of a single nominal variable: ```{r} #| label = "ggpiestats2", #| fig.height = 6, #| fig.width = 10 set.seed(123) grouped_ggpiestats( data = mtcars, x = cyl, grouping.var = am, label.repel = TRUE, package = "ggsci", palette = "default_ucscgb" ) ``` Details about underlying functions used to create graphics and statistical tests carried out can be found in the function documentation: For more, also read the following vignette: ### `ggbarstats()` In case you are not a fan of pie charts (for very good reasons), you can alternatively use `ggbarstats()` function which has a similar syntax. N.B. The *p*-values from one-sample proportion test are displayed on top of each bar. ```{r} #| label = "ggbarstats1", #| fig.height = 8, #| fig.width = 10 set.seed(123) library(ggplot2) ggbarstats( data = movies_long, x = mpaa, y = genre, title = "MPAA Ratings by Genre", xlab = "movie genre", legend.title = "MPAA rating", ggplot.component = list(ggplot2::scale_x_discrete(guide = ggplot2::guide_axis(n.dodge = 2))), palette = "Set2" ) ``` **Defaults** return
✅ descriptives (frequency + %s)
✅ inferential statistics
✅ effect size + CIs
✅ Goodness-of-fit tests
✅ Bayesian hypothesis-testing
✅ Bayesian estimation
And, needless to say, there is also a `grouped_` variant of this function- ```{r} #| label = "ggbarstats2", #| fig.height = 6, #| fig.width = 12 ## setup set.seed(123) grouped_ggbarstats( data = mtcars, x = am, y = cyl, grouping.var = vs, package = "wesanderson", palette = "Darjeeling2" # , # ggtheme = ggthemes::theme_tufte(base_size = 12) ) ``` Details about underlying functions used to create graphics and statistical tests carried out can be found in the function documentation: For more, also read the following vignette: ### `ggcoefstats()` The function `ggcoefstats()` generates **dot-and-whisker plots** for regression models. The tidy data frames are prepared using `parameters::model_parameters()`. Additionally, if available, the model summary indices are also extracted from `performance::model_performance()`. ```{r} #| label = "ggcoefstats1", #| fig.height = 5, #| fig.width = 6 set.seed(123) ## model mod <- stats::lm(formula = mpg ~ am * cyl, data = mtcars) ggcoefstats(mod) ``` **Defaults** return
✅ inferential statistics
✅ estimate + CIs
✅ model summary (AIC and BIC)
Details about underlying functions used to create graphics and statistical tests carried out can be found in the function documentation: For more, also read the following vignette: ### Extracting expressions and data frames with statistical details `{ggstatsplot}` also offers a convenience function to extract data frames with statistical details that are used to create expressions displayed in `{ggstatsplot}` plots. ```{r} #| label = "extract_stats" set.seed(123) p <- ggbetweenstats(mtcars, cyl, mpg) # extracting expression present in the subtitle extract_subtitle(p) # extracting expression present in the caption extract_caption(p) # a list of tibbles containing statistical analysis summaries extract_stats(p) ``` Note that all of this analysis is carried out by `{statsExpressions}` package: ### Using `{ggstatsplot}` statistical details with custom plots Sometimes you may not like the default plots produced by `{ggstatsplot}`. In such cases, you can use other **custom** plots (from `{ggplot2}` or other plotting packages) and still use `{ggstatsplot}` functions to display results from relevant statistical test. For example, in the following chunk, we will create our own plot using `{ggplot2}` package, and use `{ggstatsplot}` function for extracting expression: ```{r} #| label = "customplot", #| fig.height = 5, #| fig.width = 6 ## loading the needed libraries set.seed(123) library(ggplot2) ## using `{ggstatsplot}` to get expression with statistical results stats_results <- ggbetweenstats(morley, Expt, Speed) %>% extract_subtitle() ## creating a custom plot of our choosing ggplot(morley, aes(x = as.factor(Expt), y = Speed)) + geom_boxplot() + labs( title = "Michelson-Morley experiments", subtitle = stats_results, x = "Speed of light", y = "Experiment number" ) ``` ## Summary of benefits of using `{ggstatsplot}` - No need to use scores of packages for statistical analysis (e.g., one to get stats, one to get effect sizes, another to get Bayes Factors, and yet another to get pairwise comparisons, etc.). - Minimal amount of code needed for all functions (typically only `data`, `x`, and `y`), which minimizes chances of error and makes for tidy scripts. - Conveniently toggle between statistical approaches. - Truly makes your figures worth a thousand words. - No need to copy-paste results to the text editor (MS-Word, e.g.). - Disembodied figures stand on their own and are easy to evaluate for the reader. - More breathing room for theoretical discussion and other text. - No need to worry about updating figures and statistical details separately. ## Misconceptions about `{ggstatsplot}` This package is... ❌ an alternative to learning `{ggplot2}`
✅ (The better you know `{ggplot2}`, the more you can modify the defaults to your liking.) ❌ meant to be used in talks/presentations
✅ (Default plots can be too complicated for effectively communicating results in time-constrained presentation settings, e.g. conference talks.) ❌ the only game in town
✅ (GUI software alternatives: [JASP](https://jasp-stats.org/) and [jamovi](https://www.jamovi.org/)). ## Extensions In case you use the GUI software [`jamovi`](https://www.jamovi.org/), you can install a module called [`jjstatsplot`](https://github.com/sbalci/jjstatsplot), which is a wrapper around `{ggstatsplot}`. ## Contributing I'm happy to receive bug reports, suggestions, questions, and (most of all) contributions to fix problems and add features. I personally prefer using the `GitHub` issues system over trying to reach out to me in other ways (personal e-mail, Twitter, etc.). Pull Requests for contributions are encouraged. Here are some simple ways in which you can contribute (in the increasing order of commitment): - Read and correct any inconsistencies in the [documentation](https://indrajeetpatil.github.io/ggstatsplot/) - Raise issues about bugs or wanted features - Review code - Add new functionality (in the form of new plotting functions or helpers for preparing subtitles) Please note that this project is released with a [Contributor Code of Conduct](https://indrajeetpatil.github.io/ggstatsplot/CODE_OF_CONDUCT.html). By participating in this project you agree to abide by its terms.

Owner

  • Name: Indrajeet Patil
  • Login: IndrajeetPatil
  • Kind: user
  • Location: Berlin, Germany

Software Engineer || Data Scientist || Former Social Psychologist and Neuroscientist

JOSS Publication

Visualizations with statistical details: The 'ggstatsplot' approach
Published
May 25, 2021
Volume 6, Issue 61, Page 3167
Authors
Indrajeet Patil ORCID
Center for Humans and Machines, Max Planck Institute for Human Development, Berlin, Germany
Editor
Charlotte Soneson ORCID
Tags
parametric statistics nonparametric statistics robust statistics Bayesian statistics ggplot2 ggplot2-extension

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "identifier": "ggstatsplot",
  "description": "Extension of 'ggplot2', 'ggstatsplot' creates graphics with details from statistical tests included in the plots themselves. It provides an easier syntax to generate information-rich plots for statistical analysis of continuous (violin plots, scatterplots, histograms, dot plots, dot-and-whisker plots) or categorical (pie and bar charts) data. Currently, it supports the most common types of statistical approaches and tests: parametric, nonparametric, robust, and Bayesian versions of t-test/ANOVA, correlation analyses, contingency table analysis, meta-analysis, and regression analyses. References: Patil (2021) <doi:10.21105/joss.03236>.",
  "name": "ggstatsplot: 'ggplot2' Based Plots with Statistical Details",
  "relatedLink": "https://indrajeetpatil.github.io/ggstatsplot/",
  "codeRepository": "https://github.com/IndrajeetPatil/ggstatsplot",
  "issueTracker": "https://github.com/IndrajeetPatil/ggstatsplot/issues",
  "license": "https://spdx.org/licenses/MIT",
  "version": "0.13.2",
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "name": "R",
    "url": "https://r-project.org"
  },
  "runtimePlatform": "R version 4.5.0 (2025-04-11)",
  "provider": {
    "@id": "https://cran.r-project.org",
    "@type": "Organization",
    "name": "Comprehensive R Archive Network (CRAN)",
    "url": "https://cran.r-project.org"
  },
  "author": [
    {
      "@type": "Person",
      "givenName": "Indrajeet",
      "familyName": "Patil",
      "email": "patilindrajeet.science@gmail.com",
      "@id": "https://orcid.org/0000-0003-1995-6531"
    }
  ],
  "contributor": [
    {
      "@type": "Person",
      "givenName": "Chuck",
      "familyName": "Powell",
      "email": "ibecav@gmail.com",
      "@id": "https://orcid.org/0000-0002-3606-2188"
    }
  ],
  "copyrightHolder": [
    {
      "@type": "Person",
      "givenName": "Indrajeet",
      "familyName": "Patil",
      "email": "patilindrajeet.science@gmail.com",
      "@id": "https://orcid.org/0000-0003-1995-6531"
    }
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Indrajeet",
      "familyName": "Patil",
      "email": "patilindrajeet.science@gmail.com",
      "@id": "https://orcid.org/0000-0003-1995-6531"
    }
  ],
  "softwareSuggestions": [
    {
      "@type": "SoftwareApplication",
      "identifier": "afex",
      "name": "afex",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=afex"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "bayestestR",
      "name": "bayestestR",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=bayestestR"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "BayesFactor",
      "name": "BayesFactor",
      "version": ">= 0.9.12-4.7",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=BayesFactor"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "gapminder",
      "name": "gapminder",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=gapminder"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "knitr",
      "name": "knitr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=knitr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "lme4",
      "name": "lme4",
      "version": ">= 1.1-37",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=lme4"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "MASS",
      "name": "MASS",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=MASS"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "metaBMA",
      "name": "metaBMA",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=metaBMA"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "metafor",
      "name": "metafor",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=metafor"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "metaplus",
      "name": "metaplus",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=metaplus"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "psych",
      "name": "psych",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=psych"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rmarkdown",
      "name": "rmarkdown",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rmarkdown"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rstantools",
      "name": "rstantools",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rstantools"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "stats",
      "name": "stats"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "survival",
      "name": "survival",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=survival"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "testthat",
      "name": "testthat",
      "version": ">= 3.2.3",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=testthat"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "tibble",
      "name": "tibble",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tibble"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "vdiffr",
      "name": "vdiffr",
      "version": ">= 1.0.8",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=vdiffr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "withr",
      "name": "withr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=withr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "WRS2",
      "name": "WRS2",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=WRS2"
    }
  ],
  "softwareRequirements": {
    "1": {
      "@type": "SoftwareApplication",
      "identifier": "R",
      "name": "R",
      "version": ">= 4.3.0"
    },
    "2": {
      "@type": "SoftwareApplication",
      "identifier": "correlation",
      "name": "correlation",
      "version": ">= 0.8.8",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=correlation"
    },
    "3": {
      "@type": "SoftwareApplication",
      "identifier": "datawizard",
      "name": "datawizard",
      "version": ">= 1.2.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=datawizard"
    },
    "4": {
      "@type": "SoftwareApplication",
      "identifier": "dplyr",
      "name": "dplyr",
      "version": ">= 1.1.4",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=dplyr"
    },
    "5": {
      "@type": "SoftwareApplication",
      "identifier": "ggcorrplot",
      "name": "ggcorrplot",
      "version": ">= 0.1.4.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=ggcorrplot"
    },
    "6": {
      "@type": "SoftwareApplication",
      "identifier": "ggplot2",
      "name": "ggplot2",
      "version": ">= 4.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=ggplot2"
    },
    "7": {
      "@type": "SoftwareApplication",
      "identifier": "ggrepel",
      "name": "ggrepel",
      "version": ">= 0.9.6",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=ggrepel"
    },
    "8": {
      "@type": "SoftwareApplication",
      "identifier": "ggside",
      "name": "ggside",
      "version": ">= 0.3.2",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=ggside"
    },
    "9": {
      "@type": "SoftwareApplication",
      "identifier": "ggsignif",
      "name": "ggsignif",
      "version": ">= 0.6.4",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=ggsignif"
    },
    "10": {
      "@type": "SoftwareApplication",
      "identifier": "glue",
      "name": "glue",
      "version": ">= 1.8.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=glue"
    },
    "11": {
      "@type": "SoftwareApplication",
      "identifier": "insight",
      "name": "insight",
      "version": ">= 1.4.2",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=insight"
    },
    "12": {
      "@type": "SoftwareApplication",
      "identifier": "magrittr",
      "name": "magrittr",
      "version": ">= 2.0.3",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=magrittr"
    },
    "13": {
      "@type": "SoftwareApplication",
      "identifier": "paletteer",
      "name": "paletteer",
      "version": ">= 1.6.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=paletteer"
    },
    "14": {
      "@type": "SoftwareApplication",
      "identifier": "parameters",
      "name": "parameters",
      "version": ">= 0.28.2",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=parameters"
    },
    "15": {
      "@type": "SoftwareApplication",
      "identifier": "patchwork",
      "name": "patchwork",
      "version": ">= 1.3.2",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=patchwork"
    },
    "16": {
      "@type": "SoftwareApplication",
      "identifier": "performance",
      "name": "performance",
      "version": ">= 0.15.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=performance"
    },
    "17": {
      "@type": "SoftwareApplication",
      "identifier": "purrr",
      "name": "purrr",
      "version": ">= 1.1.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=purrr"
    },
    "18": {
      "@type": "SoftwareApplication",
      "identifier": "rlang",
      "name": "rlang",
      "version": ">= 1.1.6",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rlang"
    },
    "19": {
      "@type": "SoftwareApplication",
      "identifier": "statsExpressions",
      "name": "statsExpressions",
      "version": ">= 1.7.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=statsExpressions"
    },
    "20": {
      "@type": "SoftwareApplication",
      "identifier": "tidyr",
      "name": "tidyr",
      "version": ">= 1.3.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tidyr"
    },
    "21": {
      "@type": "SoftwareApplication",
      "identifier": "utils",
      "name": "utils"
    },
    "SystemRequirements": null
  },
  "fileSize": "9307.847KB",
  "citation": [
    {
      "@type": "ScholarlyArticle",
      "datePublished": "2021",
      "author": [
        {
          "@type": "Person",
          "givenName": "Indrajeet",
          "familyName": "Patil"
        }
      ],
      "name": "{Visualizations with statistical details: The {'ggstatsplot'} approach}",
      "identifier": "10.21105/joss.03167",
      "url": "https://doi.org/10.21105/joss.03167",
      "pagination": "3167",
      "@id": "https://doi.org/10.21105/joss.03167",
      "sameAs": "https://doi.org/10.21105/joss.03167",
      "isPartOf": {
        "@type": "PublicationIssue",
        "issueNumber": "61",
        "datePublished": "2021",
        "isPartOf": {
          "@type": [
            "PublicationVolume",
            "Periodical"
          ],
          "volumeNumber": "6",
          "name": "{Journal of Open Source Software}"
        }
      }
    }
  ],
  "releaseNotes": "https://github.com/IndrajeetPatil/ggstatsplot/blob/main/NEWS.md",
  "readme": "https://github.com/IndrajeetPatil/ggstatsplot/blob/main/README.md",
  "contIntegration": "https://app.codecov.io/gh/IndrajeetPatil/ggstatsplot",
  "developmentStatus": "https://lifecycle.r-lib.org/articles/stages.html",
  "keywords": [
    "ggplot-extension",
    "dataviz",
    "r",
    "statistical-analysis",
    "datascience",
    "bayes-factors",
    "regression-models",
    "effect-size",
    "non-parametric-statistics",
    "hypothesis-testing"
  ]
}

Papers & Mentions

Total mentions: 82

Identification of hub genes in prostate cancer using robust rank aggregation and weighted gene co-expression network analysis
Last synced: 2 months ago
Do eye diseases increase the risk of arthritis in the elderly population?
Last synced: 2 months ago
Ceruloplasmin correlates with immune infiltration and serves as a prognostic biomarker in breast cancer
Last synced: 2 months ago
Identification of key genes in coronary artery disease: an integrative approach based on weighted gene co-expression network analysis and their correlation with immune infiltration
Last synced: 2 months ago
Risk score based on expression of five novel genes predicts survival in soft tissue sarcoma
Last synced: 2 months ago
Local Anesthesia in Piglets Undergoing Castration—A Comparative Study to Investigate the Analgesic Effects of Four Local Anesthetics Based on Defensive Behavior and Side Effects
Last synced: 2 months ago
Impact and Sustainability of Antibiotic Stewardship in Pediatric Emergency Departments: Why Persistence Is the Key to Success
Last synced: 2 months ago
A comprehensive analysis of cotton VQ gene superfamily reveals their potential and extensive roles in regulating cotton abiotic stress
Last synced: 2 months ago
Fecal Metaproteomics Reveals Reduced Gut Inflammation and Changed Microbial Metabolism Following Lifestyle-Induced Weight Loss
Last synced: 2 months ago
Lower Gene Expression of Angiotensin Converting Enzyme 2 Receptor in Lung Tissues of Smokers With COVID-19Pneumonia
Last synced: 2 months ago
The Impact of a Structured Exercise Programme upon Cognitive Function in Chronic Fatigue Syndrome Patients
Last synced: 2 months ago
miR-335-5p suppresses gastric cancer progression by targeting MAPK10
Last synced: 2 months ago
RETRACTED ARTICLE: Aging-related tumor associated fibroblasts changes could worsen the prognosis of GBM patients
Last synced: 2 months ago
Predicting the immune landscape of invasive breast carcinoma based on the novel signature of immune‐related lncRNA
Last synced: 2 months ago
Impact of the COVID-19 pandemic and associated non-pharmaceutical interventions on other notifiable infectious diseases in Germany: An analysis of national surveillance data during week 1–2016 – week 32–2020
Last synced: 2 months ago
Autonomic and Cognitive Function Response to Normobaric Hyperoxia Exposure in Healthy Subjects. Preliminary Study
Last synced: 2 months ago
Fecal Supernatant from Adult with Autism Spectrum Disorder Alters Digestive Functions, Intestinal Epithelial Barrier, and Enteric Nervous System
Last synced: 2 months ago
Single-cell immune checkpoint landscape of PBMCs stimulated with <i>Candida albicans</i>
Last synced: 2 months ago
Metagenomic investigation of potential abortigenic pathogens in foetal tissues from Australian horses
Last synced: 2 months ago
Identification of Long Noncoding RNAs as Predictors of Survival in Triple-Negative Breast Cancer Based on Network Analysis
Last synced: 2 months ago
Analysis of Hub Genes and the Mechanism of Immune Infiltration in Stanford Type a Aortic Dissection
Last synced: 2 months ago
Identification of an Immune-Related Risk Signature Correlates With Immunophenotype and Predicts Anti-PD-L1 Efficacy of Urothelial Cancer
Last synced: 2 months ago
Identification of a Novel Immune Landscape Signature for Predicting Prognosis and Response of Endometrial Carcinoma to Immunotherapy and Chemotherapy
Last synced: 2 months ago
Identification of the Role and Clinical Prognostic Value of Target Genes of m6A RNA Methylation Regulators in Glioma
Last synced: 2 months ago
The Prognosis and Immune Checkpoint Blockade Efficacy Prediction of Tumor-Infiltrating Immune Cells in Lung Cancer
Last synced: 2 months ago
Heme Oxygenase-1 at the Nexus of Endothelial Cell Fate Decision Under Oxidative Stress
Last synced: 2 months ago
Functional Assessment of Four Novel Immune-Related Biomarkers in the Pathogenesis of Clear Cell Renal Cell Carcinoma
Last synced: 2 months ago
Identification of Signature Genes Associated With Invasiveness and the Construction of a Prognostic Model That Predicts the Overall Survival of Bladder Cancer
Last synced: 2 months ago
Identification of Hub Genes and Immune Infiltration in Psoriasis by Bioinformatics Method
Last synced: 2 months ago
Identification of Hub Genes Associated With Progression and Prognosis in Patients With Bladder Cancer
Last synced: 2 months ago
Construction of a circRNA-Related Prognostic Risk Score Model for Predicting the Immune Landscape of Lung Adenocarcinoma
Last synced: 2 months ago
Identification of Immune-Related LncRNA Pairs for Predicting Prognosis and Immunotherapeutic Response in Head and Neck Squamous Cell Carcinoma
Last synced: 2 months ago
CD2 Is a Novel Immune-Related Prognostic Biomarker of Invasive Breast Carcinoma That Modulates the Tumor Microenvironment
Last synced: 2 months ago
The Effect of Individual Musculoskeletal Conditions on Depression: Updated Insights From an Irish Longitudinal Study on Aging
Last synced: 2 months ago
GABA Production by Human Intestinal Bacteroides spp.: Prevalence, Regulation, and Role in Acid Stress Tolerance
Last synced: 2 months ago
Cross-Sectional Study on the Gut Microbiome of Parkinson’s Disease Patients in Central China
Last synced: 2 months ago
A Metabarcoding Analysis of the Mycobiome of Wheat Ears Across a Topographically Heterogeneous Field
Last synced: 2 months ago
Transcriptomic Profiling Identifies DCBLD2 as a Diagnostic and Prognostic Biomarker in Pancreatic Ductal Adenocarcinoma
Last synced: 2 months ago
FOXA2-Interacting FOXP2 Prevents Epithelial-Mesenchymal Transition of Breast Cancer Cells by Stimulating E-Cadherin and PHF2 Transcription
Last synced: 2 months ago
MEK Inhibitor Augments Antitumor Activity of B7-H3-Redirected Bispecific Antibody
Last synced: 2 months ago
Using Machine Learning Modeling to Explore New Immune-Related Prognostic Markers in Non-Small Cell Lung Cancer
Last synced: 2 months ago
The Evaluation of Cognitive Impairment in Alcohol-Dependent Patients Through RBANS Combined With ERPs
Last synced: 2 months ago
Factors Associated With Lameness in Tie Stall Housed Dairy Cows in South Germany
Last synced: 2 months ago
The Role of the Trabecular Bone Score in the Assessment of Osteoarticular Disorders in Patients with HFE-Hemochromatosis: A Single-Center Study from Poland
Last synced: 2 months ago
Cognitive Function Changes in Older People. Results of Second Wave of Cognition of Older People, Education, Recreational Activities, NutritIon, Comorbidities, fUnctional Capacity Studies (COPERNICUS)
Last synced: 2 months ago
Aging Increases Cross-Modal Distraction by Unexpected Sounds: Controlling for Response Speed
Last synced: 2 months ago
Significant reduction in depressive symptoms among patients with moderately-severe to severe depressive symptoms after participation in a therapist-supported, evidence-based mobile health program delivered via a smartphone app
Last synced: 2 months ago
Centromere Protein F (<i>CENPF</i>) Serves as a Potential Prognostic Biomarker and Target for Human Hepatocellular Carcinoma
Last synced: 2 months ago
Characteristics of Infiltrating Immune Cells and a Predictive Immune Model for Cervical Cancer
Last synced: 2 months ago
Identification of key candidate biomarkers for severe influenza infection by integrated bioinformatical analysis and initial clinical validation
Last synced: 2 months ago
Post-Exertional Malaise May Be Related to Central Blood Pressure, Sympathetic Activity and Mental Fatigue in Chronic Fatigue Syndrome Patients
Last synced: 2 months ago
Development of a novel immune-related genes prognostic signature for osteosarcoma
Last synced: 2 months ago
Comprehensive machine learning based study of the chemical space of herbicides
Last synced: 2 months ago
Cross-modal auditory priors drive the perception of bistable visual stimuli with reliable differences between individuals
Last synced: 2 months ago
Human Pathogenic Candida Species Respond Distinctively to Lactic Acid Stress
Last synced: 2 months ago
Heading for Personalized rTMS in Tinnitus: Reliability of Individualized Stimulation Protocols in Behavioral and Electrophysiological Responses
Last synced: 2 months ago
Identification of 4 immune cells and a 5-lncRNA risk signature with prognosis for early-stage lung adenocarcinoma
Last synced: 2 months ago
Identification of immune subtypes of cervical squamous cell carcinoma predicting prognosis and immunotherapy responses
Last synced: 2 months ago
Genomic and Transcriptome Analysis to Identify the Role of the mTOR Pathway in Kidney Renal Clear Cell Carcinoma and Its Potential Therapeutic Significance
Last synced: 2 months ago
Identification of a Tumor Microenvironment-Related Gene Signature Indicative of Disease Prognosis and Treatment Response in Colon Cancer
Last synced: 2 months ago
Human Face-Selective Cortex Does Not Distinguish between Members of a Racial Outgroup
Last synced: 2 months ago
Populations and Host/Non-Host Plants of Spittlebugs Nymphs in Olive Orchards from Northeastern Portugal
Last synced: 2 months ago
Identification of sources resistant to a virulent Fusarium wilt strain (VCG 0124) infecting Cavendish bananas
Last synced: 2 months ago
Identification of hub methylated‐CpG sites and associated genes in oral squamous cell carcinoma
Last synced: 2 months ago
Identification of prognostic biomarkers associated with stromal cell infiltration in muscle‐invasive bladder cancer by bioinformatics analyses
Last synced: 2 months ago
MRPL15 is a novel prognostic biomarker and therapeutic target for epithelial ovarian cancer
Last synced: 2 months ago
Expression and prognostic analyses of <i>ITGA11</i>, <i>ITGB4</i> and <i>ITGB8</i> in human non-small cell lung cancer
Last synced: 2 months ago
Loss of HOXB3 correlates with the development of hormone receptor negative breast cancer
Last synced: 2 months ago
Integrated bioinformatics analysis of the NEDD4 family reveals a prognostic value of <i>NEDD4L</i> in clear-cell renal cell cancer
Last synced: 2 months ago
Short-Term Medical Cannabis Treatment Regimens Produced Beneficial Effects among Palliative Cancer Patients
Last synced: 2 months ago
Molecular asymmetry in the cephalochordate embryo revealed by single-blastomere transcriptome profiling
Last synced: 2 months ago
Composition of cutaneous bacterial microbiome in seborrheic dermatitis patients: A cross-sectional study
Last synced: 2 months ago
Divorce and adolescent academic achievement: Heterogeneity in the associations by parental education
Last synced: 2 months ago
Rapid assessment of psychological and epidemiological correlates of COVID-19 concern, financial strain, and health-related behavior change in a large online sample
Last synced: 2 months ago
Identification of a prognostic ferroptosis-related lncRNA signature in the tumor microenvironment of lung adenocarcinoma
Last synced: 2 months ago
Odor–Taste Interactions in Food Perception: Exposure Protocol Shows No Effects of Associative Learning
Last synced: 2 months ago
GRB10 and E2F3 as Diagnostic Markers of Osteoarthritis and Their Correlation with Immune Infiltration
Last synced: 2 months ago
Genome-wide transcriptome study in skin biopsies reveals an association of E2F4 with cadasil and cognitive impairment
Last synced: 2 months ago
Association between ACE2 and TMPRSS2 nasopharyngeal expression and COVID-19 respiratory distress
Last synced: 2 months ago
Peak Match Demands in Young Basketball Players: Approach and Applications
Last synced: 2 months ago
The Multi-Elemental Composition of the Aqueous Humor of Patients Undergoing Cataract Surgery, Suffering from Coexisting Diabetes, Hypertension, or Diabetic Retinopathy
Last synced: 2 months ago
Altered Interoceptive Perception and the Effects of Interoceptive Analgesia in Musculoskeletal, Primary, and Neuropathic Chronic Pain Conditions
Last synced: 2 months ago

GitHub Events

Total
  • Create event: 25
  • Release event: 3
  • Issues event: 19
  • Watch event: 122
  • Delete event: 22
  • Issue comment event: 51
  • Push event: 105
  • Pull request review comment event: 3
  • Pull request review event: 4
  • Pull request event: 49
  • Fork event: 20
Last Year
  • Create event: 25
  • Release event: 3
  • Issues event: 19
  • Watch event: 122
  • Delete event: 22
  • Issue comment event: 51
  • Push event: 105
  • Pull request review comment event: 3
  • Pull request review event: 4
  • Pull request event: 49
  • Fork event: 20

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 1,824
  • Total Committers: 11
  • Avg Commits per committer: 165.818
  • Development Distribution Score (DDS): 0.135
Past Year
  • Commits: 41
  • Committers: 2
  • Avg Commits per committer: 20.5
  • Development Distribution Score (DDS): 0.22
Top Committers
Name Email Commits
Indrajeet Patil i****8@g****m 1,577
Chuck Powell i****v@g****m 200
dependabot[bot] 4****] 14
Patil i****l@f****u 13
Will Beasley w****y@h****m 10
Daniel Heck d****k@w****e 4
Antoine Soetewey a****y@g****m 2
Michael Mahoney m****8@g****m 1
Hubert Baniecki 3****i 1
EmilHvitfeldt e****t@g****m 1
Charlotte Soneson c****n@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 157
  • Total pull requests: 129
  • Average time to close issues: 3 months
  • Average time to close pull requests: 27 days
  • Total issue authors: 100
  • Total pull request authors: 10
  • Average comments per issue: 2.04
  • Average comments per pull request: 0.71
  • Merged pull requests: 94
  • Bot issues: 0
  • Bot pull requests: 29
Past Year
  • Issues: 17
  • Pull requests: 52
  • Average time to close issues: 6 days
  • Average time to close pull requests: 3 days
  • Issue authors: 17
  • Pull request authors: 9
  • Average comments per issue: 1.06
  • Average comments per pull request: 0.29
  • Merged pull requests: 29
  • Bot issues: 0
  • Bot pull requests: 17
Top Authors
Issue Authors
  • IndrajeetPatil (33)
  • AntoineSoetewey (6)
  • yuliaUU (5)
  • M-Colley (4)
  • Eduardo-Auer (2)
  • liamxg (2)
  • ocolluphid (2)
  • martynagalazka (2)
  • andreifoldes (2)
  • lxsteiner (2)
  • sunshineYin (2)
  • ShixiangWang (2)
  • quant39 (2)
  • Andrzej-Andrzej (2)
  • ramashka328 (2)
Pull Request Authors
  • IndrajeetPatil (106)
  • dependabot[bot] (40)
  • lauredrs (2)
  • leolrl (2)
  • Ameane (2)
  • oranwutang (2)
  • mathgrd (2)
  • aankoudnora (2)
  • florian714 (2)
  • Copilot (1)
Top Labels
Issue Labels
question ❓ (32) enhancement 🔥 (18) bug 🐜 (13) documentation 📑 (6) breaking 💀 (6) wontfix ❌ (2) help wanted :heart: (2) upkeep :broom: (2) duplicate 👯‍♂️ (2) invalid :no_good_man: (2) WIP 👷‍♂️ (2) consistency :apple: :green_apple: (1) out-of-scope ❌ (1) low priority :sleeping: (1)
Pull Request Labels
dependencies (40) github_actions (7) breaking 💀 (2) documentation 📑 (2)

Packages

  • Total packages: 2
  • Total downloads:
    • cran 7,585 last-month
  • Total docker downloads: 751
  • Total dependent packages: 3
    (may contain duplicates)
  • Total dependent repositories: 13
    (may contain duplicates)
  • Total versions: 71
  • Total maintainers: 1
cran.r-project.org: ggstatsplot

'ggplot2' Based Plots with Statistical Details

  • Versions: 47
  • Dependent Packages: 3
  • Dependent Repositories: 11
  • Downloads: 7,585 Last month
  • Docker Downloads: 751
Rankings
Stargazers count: 0.1%
Forks count: 0.3%
Downloads: 4.0%
Average: 7.2%
Dependent repos count: 8.8%
Dependent packages count: 13.6%
Docker downloads count: 16.5%
Last synced: 4 months ago
conda-forge.org: r-ggstatsplot
  • Versions: 24
  • Dependent Packages: 0
  • Dependent Repositories: 2
Rankings
Stargazers count: 9.5%
Forks count: 13.6%
Dependent repos count: 20.3%
Average: 23.8%
Dependent packages count: 51.6%
Last synced: 4 months ago

Dependencies

.github/workflows/R-CMD-check-hard.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/R-CMD-check-strict.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/R-CMD-check.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/check-all-examples.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/check-link-rot.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/check-readme.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/check-spelling.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/check-test-warnings.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/check-vignette-warnings.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/html-5-check.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/lint-changed-files.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/lint.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/pkgdown-no-suggests.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/pkgdown.yaml actions
  • JamesIves/github-pages-deploy-action v4.4.1 composite
  • actions/checkout v3 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/pre-commit.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • ad-m/github-push-action master composite
  • pre-commit/action v3.0.0 composite
  • styfle/cancel-workflow-action 0.11.0 composite
.github/workflows/styler.yaml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
  • stefanzweifel/git-auto-commit-action v4 composite
.github/workflows/test-coverage-examples.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/test-coverage.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
DESCRIPTION cran
  • R >= 4.1.0 depends
  • correlation >= 0.8.3 imports
  • datawizard >= 0.6.5 imports
  • dplyr >= 1.1.0 imports
  • ggplot2 >= 3.4.1 imports
  • ggrepel >= 0.9.3 imports
  • ggsignif * imports
  • glue * imports
  • insight >= 0.19.0 imports
  • paletteer * imports
  • parameters >= 0.20.1 imports
  • patchwork * imports
  • performance >= 0.10.2 imports
  • purrr >= 1.0.1 imports
  • rlang * imports
  • stats * imports
  • statsExpressions >= 1.4.0 imports
  • tidyr * imports
  • utils * imports
  • BayesFactor >= 0.9.12 suggests
  • MASS * suggests
  • PMCMRplus * suggests
  • WRS2 * suggests
  • afex * suggests
  • gapminder * suggests
  • ggcorrplot >= 0.1.4 suggests
  • ggside >= 0.2.2 suggests
  • knitr * suggests
  • lme4 * suggests
  • metaBMA * suggests
  • metafor * suggests
  • metaplus * suggests
  • psych * suggests
  • ragg * suggests
  • rmarkdown * suggests
  • survival * suggests
  • testthat >= 3.1.6 suggests
  • tibble * suggests
  • vdiffr >= 1.0.5 suggests
.github/workflows/R-CMD-check-devel.yaml actions
  • actions/checkout v4 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/check-random-test-order.yaml actions
  • actions/checkout v4 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite