nlmixr2plot 5.1.0
- Fixed an “object of type ‘closure’ is not subsettable” error in
vpcCensTad()(andvpcCens()/vpcPlot()/vpcPlotTad()withcens = TRUEand a non-timeidv); the censored VPC now passes thesim/obscolumn mappings tovpc::vpc_cens()explicitly instead of relying on column guessing (nlmixr2#390). - Fixed the censored VPC confidence band, which was computed as if every simulated row were its own replicate. The simulated
dvis now mapped to thesimcolumn instead of being copied into a newdvcolumn, sovpcgroups the simulated data by replicate as it does for the uncensored VPC. - Fixed a
quantile()“missing values and NaNs not allowed” error in prediction-correctedvpcPlot()/vpcPlotTad()on censored (LLOQ/ULOQ) fits with thevpcbackend; censored records are now dropped before the pred-corrected VPC (which is shown for non-censored data only), matching thevpcpackage’s stated behavior (nlmixr2#390). - Fixed prediction-corrected
vpcPlot()/vpcPlotTad()withmethod = "tidyvpc", cens = TRUE, which previously errored that the observed data had nocenscolumn; the censoring column is now retained when the observed dataset is rebuilt for pred-correction. -
plot()on a fit with between-subject variability (BSV) now adds a nested"bsv"section (inside each data/compartment group) with QQ plots for each BSV parameter, BSV-BSV correlation plots (when more than one BSV parameter is present) and, via the newcovariateargument, BSV-by-covariate plots (box-and-whisker for categorical or low-cardinality covariates, scatter plus a linear trend with confidence interval for continuous ones). Covariate values are taken from each subject’s first record, so they are assumed time-invariant (#51). - Plot collections returned by
plot()(for fits andaugPredobjects) are nowgglistobjects from theggtibblepackage instead of the internalnlmixr2PlotListclass. They still print/plot all figures at once and support broadcastingggplot2additions (e.g.plot(fit) + ggplot2::theme_bw()), and the top-level object remains a named, nested collection (plot(fit)[["Endpoint: ..."]]). The collection can also be converted to aggtibblefor reporting withggtibble::as_ggtibble(). - Individual/
augPredplots are now paginated withggforce::facet_wrap_paginate(), removing the hand-written 16-IDs-per-page chunking. Requiresggtibble (>= 1.0.3.9000)andggforce; the minimum R version is now 4.3. -
plot()on a fit (and on anaugPredobject) is now about 3x faster. The paginated individual plots were expanded one-per-page withggtibble::as_gglist(), which deep-copies the plot throughserialize()/unserialize(); because those plots are built inside functions that hold the whole fit, each copy walked the entire fit object. The pages are now produced by re-adding the paginated facet for each page instead. - Removed obsolete
rxode2::.linCmtSensB()test guards. That internal was removed fromrxode2in 2025, so thetry()/skip_if_not()checks always fell through and never skipped.linCmt()gradients are now always available, so the guards are unnecessary and the tests run unconditionally.
nlmixr2plot 5.0.2
CRAN release: 2026-06-11
- Fixed an error when plotting models without compartments (#33)
nlmixr2plot 3.0.3
CRAN release: 2025-08-23
- Updated tests and added
Opsmethod (removing+method) to work with ggplot2 version 4 (#39)
nlmixr2plot 3.0.1
CRAN release: 2025-02-14
- Added the ability to add ggplot items to a nlmixr2 plot list with
+
nlmixr2plot 2.0.9
CRAN release: 2024-05-29
- Bug fix for
vpcPlot()where input data frame for models did not stratify all the time when the columns were upper case.
nlmixr2plot 2.0.8
CRAN release: 2024-01-31
plot()now returns a named list of lists so that users can more easily choose which plots to include, if all plots are not desired. Or the user could use those names as the basis of figure captions (fix #8).Models without eta values (between subject variability) now have more consistent plotting to models with eta values (fix #18).
The package was updated to align with changes in ggplot2.
The package was updated to skip tests with
"focei"andlinCmt()
