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`

.

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" )

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 |

plot grid

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`

and`yvar`

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.

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)# 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