# Copyright (C) 2014 Johannes Ranke # Contact: jranke@uni-bremen.de # This file is part of the R package mkin # mkin is free software: you can redistribute it and/or modify it under the # terms of the GNU General Public License as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # You should have received a copy of the GNU General Public License along with # this program. If not, see mkinparplot <- function(object) { state.optim = rownames(subset(object$start, type == "state")) deparms.optim = rownames(subset(object$start, type == "deparm")) fractions.optim = grep("^f_", deparms.optim, value = TRUE) if ("g" %in% deparms.optim) fractions.optim <- c("g", fractions.optim) rates.optim = setdiff(deparms.optim, fractions.optim) n.plot <- c(state.optim = length(state.optim), rates.optim = length(rates.optim), fractions.optim = length(fractions.optim)) n.plot <- n.plot[n.plot > 0] layout(matrix(1:length(n.plot), ncol = 1), heights = n.plot + 1) s <- summary(object) bpar <- data.frame(t(s$bpar)) oldpars <- par(no.readonly = TRUE) par(mar = c(2.1, 2.1, 0.1, 2.1)) for (type in names(n.plot)) { parnames <- get(type) values <- bpar[parnames] xlim = switch(type, state.optim = range(c(0, unlist(values)), na.rm = TRUE, finite = TRUE), rates.optim = range(unlist(values), na.rm = TRUE, finite = TRUE), fractions.optim = range(c(0, 1, unlist(values)), na.rm = TRUE, finite = TRUE)) stripchart(bpar[get(type)], xlim = xlim, yaxt = "n", ylim = c(0.5, length(get(type)) + 0.5)) text(mean(xlim), 1:length(parnames), parnames, pos = 3, offset = 1) arrows(as.numeric(values["Lower", ]), 1:length(parnames), as.numeric(values["Upper", ]), 1:length(parnames), code = 3, angle = 90, length = 0.1) } par(oldpars) }