Plot a 2D-Gaussian via ggplot
ggplot_gaussian_2D( gauss_data, normalize = TRUE, contour_thickness = 0.04, contour_color = "black", bins = 15, viridis_dir = 1, viridis_opt = "B", x_lab = "X values", y_lab = "Y values", axis.text = element_text(size = 6), axis.title = element_text(size = 7), axis.ticks = element_line(size = 0.3), plot.margin = unit(c(0.1, 0.1, 0.1, 0.1), "cm"), ... )
gauss_data | Data.frame with X_values, Y_values, and predicted_values,
e.g. exported from |
---|---|
normalize | Default TRUE, should predicted_values be normalized on a 0 to 1 scale? |
contour_thickness | Thickness of contour lines |
contour_color | Color of the contour lines |
bins | Number of bins for the contour plot |
viridis_dir | See "direction" in scale_fill_viridis_c() |
viridis_opt | See "option" in scale_fill_viridis_c() |
x_lab | Arguments passed to xlab() |
y_lab | Arguments passed to ylab() |
axis.text | Arguments passed to axis.text |
axis.title | Arguments passed to axis.title |
axis.ticks | Arguments passed to axis.ticks |
plot.margin | Arguments passed to plot.margin |
... | Other arguments supplied to |
A ggplot object that uses metR::geom_contour_fill() to display the 2D-Gaussian
Vikram B. Baliga
if (interactive()) { ## Load the sample data set data(gaussplot_sample_data) ## The raw data we'd like to use are in columns 1:3 samp_dat <- gaussplot_sample_data[,1:3] #### Example 1: Unconstrained elliptical #### ## This fits an unconstrained elliptical by default gauss_fit <- fit_gaussian_2D(samp_dat) ## Generate a grid of x- and y- values on which to predict grid <- expand.grid(X_values = seq(from = -5, to = 0, by = 0.1), Y_values = seq(from = -1, to = 4, by = 0.1)) ## Predict the values using predict_gaussian_2D gauss_data <- predict_gaussian_2D( fit_object = gauss_fit, X_values = grid$X_values, Y_values = grid$Y_values, ) ## Plot via ggplot2 and metR library(ggplot2); library(metR) ggplot_gaussian_2D(gauss_data) ## Produce a 3D plot via rgl rgl_gaussian_2D(gauss_data) #### Example 2: Constrained elliptical_log #### ## This fits a constrained elliptical, as in Priebe et al. 2003 gauss_fit <- fit_gaussian_2D( samp_dat, method = "elliptical_log", constrain_orientation = -1 ) ## Generate a grid of x- and y- values on which to predict grid <- expand.grid(X_values = seq(from = -5, to = 0, by = 0.1), Y_values = seq(from = -1, to = 4, by = 0.1)) ## Predict the values using predict_gaussian_2D gauss_data <- predict_gaussian_2D( fit_object = gauss_fit, X_values = grid$X_values, Y_values = grid$Y_values, ) ## Plot via ggplot2 and metR ggplot_gaussian_2D(gauss_data) ## Produce a 3D plot via rgl rgl_gaussian_2D(gauss_data) }