predict_gaussian_2D {gaussplotR} | R Documentation |
Predict values from a fitted 2D-Gaussian
Description
Predict values from a fitted 2D-Gaussian
Usage
predict_gaussian_2D(fit_object, X_values, Y_values, ...)
Arguments
fit_object |
Either the output of |
X_values |
vector of numeric values for the x-axis |
Y_values |
vector of numeric values for the y-axis |
... |
Additional arguments |
Details
This function assumes Gaussian parameters have been fitted beforehand. No
fitting of parameters is done within this function; these can be
supplied via the object created by gaussplotR::fit_gaussian_2D()
.
If fit_object
is not an object created by
gaussplotR::fit_gaussian_2D()
, predict_gaussian_2D()
attempts
to parse fit_object
as a list of two items. The coefficients of the
fit must be supplied as a one-row, named data.frame within
fit_object$coefs
, and details of the methods for fitting the Gaussian
must be contained as a character vector in fit_object$fit_method
. This
character vector in fit_object$fit_method
must be a named vector that
provides information about the method, amplitude constraint choice, and
orientation constraint choice, using the names method
,
amplitude
, and orientation
. method
must be one of:
"elliptical"
, "elliptical_log"
, or "circular"
.
amplitude
and orientation
must each be either
"unconstrained"
or "constrained"
. For example, c(method =
"elliptical", amplitude = "unconstrained", orientation = "unconstrained")
.
One exception to this is when method = "circular"
, in which case
orientation
must be NA
, e.g.: c(method = "circular",
amplitude = "unconstrained", orientation = NA)
.
Value
A data.frame with the supplied X_values
and Y_values
along with the predicted values of the 2D-Gaussian
(predicted_values
)
Author(s)
Vikram B. Baliga
Examples
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)
}