Scatterplot with marginal distributions and statistical results
Scatterplots from ggplot2 combined with marginal
histograms/boxplots/density plots with statistical details added as a
subtitle.
ggscatterstats( data, x, y, type = "parametric", conf.level = 0.95, bf.prior = 0.707, bf.message = TRUE, tr = 0.2, k = 2L, results.subtitle = TRUE, label.var = NULL, label.expression = NULL, point.args = list(size = 3, alpha = 0.4), point.width.jitter = 0, point.height.jitter = 0, point.label.args = list(size = 3, max.overlaps = 1e+06), smooth.line.args = list(size = 1.5, color = "blue"), marginal = TRUE, marginal.type = "densigram", marginal.size = 5, xfill = "#009E73", yfill = "#D55E00", xlab = NULL, ylab = NULL, title = NULL, subtitle = NULL, caption = NULL, ggtheme = ggplot2::theme_bw(), ggstatsplot.layer = TRUE, ggplot.component = NULL, output = "plot", ... )
data | 
 A dataframe (or a tibble) from which variables specified are to be taken. Other data types (e.g., matrix,table, array, etc.) will not be accepted.  | 
x | 
 The column in   | 
y | 
 The column in   | 
type | 
 A character specifying the type of statistical approach. Four possible options: 
 Corresponding abbreviations are also accepted:   | 
conf.level | 
 Scalar between   | 
bf.prior | 
 A number between   | 
bf.message | 
 Logical that decides whether to display Bayes Factor in
favor of the null hypothesis. This argument is relevant only for
parametric test (Default:   | 
tr | 
 Trim level for the mean when carrying out   | 
k | 
 Number of digits after decimal point (should be an integer)
(Default:   | 
results.subtitle | 
 Decides whether the results of statistical tests are
to be displayed as a subtitle (Default:   | 
label.var | 
 Variable to use for points labels. Can be entered either as
a bare expression (e.g,   | 
label.expression | 
 An expression evaluating to a logical vector that
determines the subset of data points to label. This argument can be entered
either as a bare expression (e.g.,   | 
point.args | 
 A list of additional aesthetic arguments to be passed
to   | 
point.width.jitter, point.height.jitter | 
 Degree of jitter in   | 
point.label.args | 
 A list of additional aesthetic arguments to be passed
to   | 
smooth.line.args | 
 A list of additional aesthetic arguments to be passed
to   | 
marginal | 
 Decides whether marginal distributions will be plotted on
axes using   | 
marginal.type | 
 Type of marginal distribution to be plotted on the axes
(  | 
marginal.size | 
 Integer describing the relative size of the marginal
plots compared to the main plot. A size of   | 
xfill, yfill | 
 Character describing color fill for   | 
xlab | 
 Labels for   | 
ylab | 
 Labels for   | 
title | 
 The text for the plot title.  | 
subtitle | 
 The text for the plot subtitle. Will work only if
  | 
caption | 
 The text for the plot caption.  | 
ggtheme | 
 A function,   | 
ggstatsplot.layer | 
 Logical that decides whether   | 
ggplot.component | 
 A   | 
output | 
 Character that describes what is to be returned: can be
  | 
... | 
 Currently ignored.  | 
 If you set marginal = TRUE, the resulting plot can not be further
modified with ggplot2 functions since it is no longer a ggplot object. In
case you want a ggplot object, set marginal = FALSE. Also have a look at
the ggplot.component argument.
 The plot uses ggrepel::geom_label_repel to attempt to keep labels
from over-lapping to the largest degree possible.  As a consequence plot
times will slow down massively (and the plot file will grow in size) if you
have a lot of labels that overlap.
# to get reproducible results from bootstrapping
set.seed(123)
library(ggstatsplot)
# creating dataframe with rownames converted to a new column
mtcars_new <- as_tibble(mtcars, rownames = "car")
# simple function call with the defaults
if (require("ggExtra")) {
  ggscatterstats(
    data = mtcars_new,
    x = wt,
    y = mpg,
    label.var = car,
    label.expression = wt < 4 & mpg < 20,
    # making further customization with `ggplot2` functions
    ggplot.component = list(ggplot2::geom_rug(sides = "b"))
  )
}Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.