ScatterHist {WVPlots} | R Documentation |
Plot a scatter plot with marginals.
Description
Plot a scatter plot with optional smoothing curves or contour lines, and marginal histogram/density plots.
Based on https://win-vector.com/2015/06/11/wanted-a-perfect-scatterplot-with-marginals/.
See also ggExtra::ggMarginal
.
Usage
ScatterHist(
frame,
xvar,
yvar,
title,
...,
smoothmethod = "lm",
estimate_sig = FALSE,
minimal_labels = TRUE,
binwidth_x = NULL,
binwidth_y = NULL,
adjust_x = 1,
adjust_y = 1,
point_alpha = 0.5,
contour = FALSE,
point_color = "black",
hist_color = "gray",
smoothing_color = "blue",
density_color = "blue",
contour_color = "blue"
)
Arguments
frame |
data frame to get values from |
xvar |
name of the independent (input or model) column in frame |
yvar |
name of the dependent (output or result to be modeled) column in frame |
title |
title to place on plot |
... |
no unnamed argument, added to force named binding of later arguments. |
smoothmethod |
(optional) one of 'auto', 'loess', 'gam', 'lm', 'identity', or 'none'. |
estimate_sig |
logical if TRUE and smoothmethod is 'identity' or 'lm', report goodness of fit and significance of relation. |
minimal_labels |
logical drop some annotations |
binwidth_x |
numeric binwidth for x histogram |
binwidth_y |
numeric binwidth for y histogram |
adjust_x |
numeric adjust x density plot |
adjust_y |
numeric adjust y density plot |
point_alpha |
numeric opaqueness of the plot points |
contour |
logical if TRUE add a 2d contour plot |
point_color |
color for scatter plots |
hist_color |
fill color for marginal histograms |
smoothing_color |
color for smoothing line |
density_color |
color for marginal density plots |
contour_color |
color for contour plots |
Details
If smoothmethod
is:
'auto', 'loess' or 'gam': the appropriate smoothing curve is added to the scatterplot.
'lm' (the default): the best fit line is added to the scatterplot.
'identity': the line x = y is added to the scatterplot. This is useful for comparing model predictions to true outcome.
'none': no smoothing line is added to the scatterplot.
If estimate_sig
is TRUE and smoothmethod
is:
'lm': the R-squared of the linear fit is reported.
'identity': the R-squared of the exact relation between
xvar
andyvar
is reported.
Note that the identity R-squared is NOT the square of the correlation between xvar
and yvar
(which includes an implicit shift and scale). It is the coefficient of determination between xvar
and
yvar
, and can be negative. See https://en.wikipedia.org/wiki/Coefficient_of_determination for more details.
If xvar
is the output of a model to predict yvar
, then the identity R-squared, not the lm R-squared,
is the correct measure.
If smoothmethod
is neither 'lm' or 'identity' then estimate_sig
is ignored.
Value
plot grid
See Also
Examples
if (requireNamespace('data.table', quietly = TRUE)) {
# don't multi-thread during CRAN checks
data.table::setDTthreads(1)
}
set.seed(34903490)
x = rnorm(50)
y = 0.5*x^2 + 2*x + rnorm(length(x))
frm = data.frame(x=x,y=y)
WVPlots::ScatterHist(frm, "x", "y",
title= "Example Fit",
smoothmethod = "gam",
contour = TRUE)
if (FALSE) {
# Same plot with custom colors
WVPlots::ScatterHist(frm, "x", "y",
title= "Example Fit",
smoothmethod = "gam",
contour = TRUE,
point_color = "#006d2c", # dark green
hist_color = "#6baed6", # medium blue
smoothing_color = "#54278f", # dark purple
density_color = "#08519c", # darker blue
contour_color = "#9e9ac8") # lighter purple
}