aboutsummaryrefslogtreecommitdiff
path: root/R
diff options
context:
space:
mode:
Diffstat (limited to 'R')
-rw-r--r--R/plot.mkinfit.R19
-rw-r--r--R/plot.mmkin.R9
2 files changed, 22 insertions, 6 deletions
diff --git a/R/plot.mkinfit.R b/R/plot.mkinfit.R
index 58ff88bc..3ca18c19 100644
--- a/R/plot.mkinfit.R
+++ b/R/plot.mkinfit.R
@@ -28,7 +28,8 @@ plot.mkinfit <- function(x, fit = x,
add = FALSE, legend = !add,
show_residuals = FALSE, maxabs = "auto",
sep_obs = FALSE, rel.height.middle = 0.9,
- lpos = "topright", inset = c(0.05, 0.05), ...)
+ lpos = "topright", inset = c(0.05, 0.05),
+ show_errmin = FALSE, errmin_digits = 3, ...)
{
if (add && show_residuals) stop("If adding to an existing plot we can not show residuals")
if (add && sep_obs) stop("If adding to an existing plot we can not show observed variables separately")
@@ -152,6 +153,22 @@ plot.mkinfit <- function(x, fit = x,
col = col_obs[row_obs_vars], pch = pch_obs[row_obs_vars], lty = lty_obs[row_obs_vars])
}
+ # Show chi2 error value if requested
+ if (show_errmin) {
+ if (length(row_obs_vars) == 1) {
+ errmin_var = row_obs_vars
+ } else {
+ errmin_var = "All data"
+ if (length(row_obs_vars) != length(fit$mkinmod$map)) {
+ warning("Showing chi2 error level for all data, but only ",
+ row_obs_vars, " were selected for plotting")
+ }
+ }
+
+ chi2 <- paste0(signif(100 * mkinerrmin(fit)[errmin_var, "err.min"], errmin_digits), "%")
+ mtext(bquote(chi^2 ~ "error level" == .(chi2)), cex = 0.7, line = 0.4)
+ }
+
# Show residuals if requested
if (show_residuals) {
residuals <- subset(fit$data, variable %in% row_obs_vars, residual)
diff --git a/R/plot.mmkin.R b/R/plot.mmkin.R
index 2cbb4a79..7de91e3e 100644
--- a/R/plot.mmkin.R
+++ b/R/plot.mmkin.R
@@ -16,7 +16,7 @@
# You should have received a copy of the GNU General Public License along with
# this program. If not, see <http://www.gnu.org/licenses/>
-plot.mmkin <- function(x, main = "auto", legends = 1, errmin_var = "All data", errmin_digits = 2,
+plot.mmkin <- function(x, main = "auto", legends = 1, errmin_var = "All data", errmin_digits = 3,
cex = 0.7, rel.height.middle = 0.9, ...) {
n.m <- nrow(x)
n.d <- ncol(x)
@@ -79,10 +79,9 @@ plot.mmkin <- function(x, main = "auto", legends = 1, errmin_var = "All data", e
datasets = colnames(x)[i.fit],
none = "")
- if (!is.null(errmin_var)) {
- chi2 <- paste0(round(100 * mkinerrmin(fit)[errmin_var, "err.min"], errmin_digits), "%")
- mtext(bquote(.(fit_name) ~ chi^2 ~ "error level" == .(chi2)), cex = cex, line = 0.4)
- }
+ chi2 <- paste0(signif(100 * mkinerrmin(fit)[errmin_var, "err.min"], errmin_digits), "%")
+ mtext(bquote(.(fit_name) ~ chi^2 ~ "error level" == .(chi2)), cex = cex, line = 0.4)
+
mkinresplot(fit, legend = FALSE, ...)
mtext(paste(fit_name, "residuals"), cex = cex, line = 0.4)
}

Contact - Imprint