pmplots 0.6.1
Bugs fixed
- Fixed a bug introduced in #124, where a hard-coded “ID” was mistakenly replaced by a call to
pm_col_tad()rather thanpm_col_id(). (#131)
pmplots 0.6.0
-
A new family of functions lets you update axis and aesthetic labels on plots after they are created, looking up column names in a named list or
yspecobject. (#122)-
pm_gg_labs()builds a label object that can be added (+) to anyggobject to update axis and aesthetic labels based on the mapped column names. It also acceptsx_break,y_break, andvar_breakarguments for inserting line breaks into long labels. -
pm_relabel()is a generic that appliespm_gg_labs()to aggobject, apatchworkobject (e.g., frometa_covariate()ornpde_panel()), or a list ofggobjects. -
pmp_relabel_wrap()relabels facet strip labels in plots produced bywrap_*functions (e.g.,wrap_eta_cont(),wrap_cont_cont()), including optionalf_breakandunit_breakarguments for wrapping long strip labels. -
pmp_relabel_pairs()relabels strip and axis labels in pairs plots (e.g., frometa_pairs()). -
relabel_at()applies relabeling to specific plots in a named list, selected by exact name or regular expression. -
pm_label_columns()attaches per-column labels to a data frame from a named list oryspecobject;pm_label_rm()removes them. When a data frame labeled this way is passed to awrap_*function withuse_labels = TRUE(now the default), the stored labels are used as facet strip titles. -
pm_gg_break()andpm_gg_break_aes()will break an established aesthetic label across two lines;pm_gg_break()identifies labels to break by variable name whilepm_gg_break_aes()identifies labels to break by aesthetic name. -
pm_label_break()is aggplot2labeller function that wraps facet labels at a specified character width, for use withfacet_wrap(labeller = ...).
-
-
A new aliasing system lets you globally redirect the canonical column names assumed by pmplots to the names actually present in your data. (#124)
-
pm_set_aliases()registers one or morealias = canonicalpairs (e.g.,pm_set_aliases(TAFD = TIME)redirects every place pmplots would look forTIMEtoTAFDinstead). Only columns returned bypm_show_canonical()can be aliased. -
pm_aliases()prints currently active aliases;pm_clear_aliases()removes them all;pm_show_canonical()lists which column names can be aliased. -
pm_col_id()returns the subject identifier column name (defaults to"ID"; controlled globally viaoptions(mrg.id_col = ...)).pm_col_tad()returns the time-after-dose column name with alias support. Both are now used internally wherever pmplots previously hard-coded"ID"or"TAD".
-
eta_covariate(),eta_covariate_list(),npde_covariate(),npde_covariate_list(),cwres_covariate(),cwres_covariate_list(), andcont_cat_panel()gain apointsargument that is forwarded toboxwork()when a categorical covariate column is plotted as a boxplot. (#126)boxwork()(and downstream functions such aspm_box(),cont_cat(), and theeta_cat()/npde_cat()families) acceptfill = NULLto suppress the default fill, leaving the returned plot open to extension withaes(fill = ...)for grouping by a third variable. (#125)Minimum ggplot2 version is now 3.5.2. (#122)
Minimum R version is now 4.1.0. (#122)
pmplots 0.5.2
Internal compatibility changes
Fix some test failures related to ggplot2 version 4.0 (#117).
Add S4 as optional dependency to silence
R CMD checkwarning (#117).Prefer
ggplot2::is_ggplot()when available (#115).Update CI and make tests compatible with GGally 2.3.0 (#114).
pmplots 0.5.1
Bugs fixed
-
eta_covariate()now callseta_cont()rather thaneta_cat()when data for the x-axis isinteger, fixing an error that was generated frometa_cat(), which always expectsfactor,character, orlogical; other internal updates have been made to ensure consistent treatment ofintegerdata as continuous rather than discrete (#104).
pmplots 0.5.0
Multiple
xandycan be now be passed as alistin addition to character vector (#95).Vectorized plots (returned as a list of plots) are now named according to the
xorydata column (#96).New function
rot_xy()allows rotation of x- or y-axis tick labels forggobjects,patchworkobjects, or lists ofggorpatchworkobjects; this function usesrot_at()for processing lists (#96).New function
rot_at()allows rotation of x- or y-axis tick labels ofggorpatchworkobjects or named lists of these objects; the list method allows rotation of specific plots in the list by matching the name exactly or through a regular expression (#96).New function
pm_with()allows arrangement of a named list of plots usingpatchworksyntax (#96).rot_y()has been updated with averticalargument, similar to existing argument inrot_x()(#96).
pmplots 0.4.1
y-axis for
cwres_q()andnpde_q()changed to remove the word “distribution” (#92).pmplots now depends on ggplot2 version 3.5.0 or greater (#86).
Axis titles for conditional weighted residuals are now abbreviated “CWRES” (#83).
Bugs fixed
- Fixed a bug where the wrong y-axis title was getting used in
cwres_covariate()(#89).
pmplots 0.4.0
- Add a series of functions for standardized, paneled displays (#77, #81).
-
eta_covariate()creates panel of ETA versus continuous or categorical covariates. -
npde_covariate()creates panel of NPDE versus continuous or categorical covariates. -
cwres_covariate()creates panel of CWRES versus continuous or categorical covariates. -
cont_cat_panel()creates panel of continuous versus categorical covariates. -
npde_panel()creates panel of NPDE-based diagnostics. -
cwres_panel()creates panel of CWRES-based diagnostics. -
npde_scatter()creates panel of NPDE-based scatter plots. -
cwres_scatter()creates panel of CWRES-based scatter plots. -
npde_hist_q()creates NPDE histogram and Q-Q plot in a panel. -
cwres_hist_q()creates CWRES histogram and Q-Q plot in a panel. - Component plots can be returned in a list which can be arranged via
with().
-
-
pm_grid()gainstag_levelsargument that gets passed topatchwork::plot_annotation()(#80).
pmplots 0.3.6
- Update plotting code to work with new
ggplot2behavior introduced in version 3.4.0;pmplotsnow depends onggplot2version 3.4.0 or greater (#71).
pmplots 0.3.5
Functions generating default axis titles now have arguments so that interpolated customizations can happen when calling the function outside of a plot context (#57).
dv_pred_ipred()heavily refactored for functionality and style; see the PR for significant changes / improvements (#54).Put stories in yaml format; add script to build validation docs from the yaml file (#58, #59).
pmplots 0.3.4
pm_grid()now uses ‘patchwork’ to arrange plots; ‘patchwork’ becomes a suggested package and ‘cowplot’ is dropped #49.scatt()gainsalphaargument with default provided bypm_opts$scatter.alpha#42, #48.split_plot()gainslabellerargument which gets passed tofacet_wrap()#43, #47.label_tex()replaceslabel_parse_label()for labeling facets vialatex2exp::TeX();label_parse_label()remains as an alias #47.label_funargument for wrap plots is renamedlabeller; applies to the following plots:wrap_cont_cont(),wrap_hist(),wrap_cont_cat(), and any plot built on these (see?wrap_plots) #43, #47.Fix bug where points overlaid on boxplots were jittered in both directions; jitter is now only in x-direction #45, #46.
pmplots 0.3.2
pairs_plot()andeta_pairs()now will properly call user-supplied functions for creating panels on the upper and lower triangle (#2)The upper panels in
pairs_plot()andeta_pairs()are not customizable usingpm_opts()(#6)The reference lines at -3 and 3 on the y-axis of
npdeplots are no longer drawn by default (#22)-
dv_pred()anddv_ipred()gain an argument (logbr) that lets the user pick the interval for tick marks whenloglogplots are drawn; options are: “full” (full log units - 10, 100 ,1000), “half” (half log units - 30, 100,- or “null” (let ggplot decide); the default is now to show full log unit breaks rather than half log unit breaks (#21)
pairs_plot()gains an argument (lower_plot) which lets the user more easily customize the scatter plot that usually appears on the lower triangle (#26)wrap_cont_cat()is a new wrap function that lets the user make faceted plots of continuous variables versus categorical variables; (#14)
pmplots 0.3.1
- Add
label_funfunction topairs_plot,wrap_cont_contandwrap_histallowing strip labels to incorporate expressions viapmplots:::label_parse#45 -
parse_labelandlabel_parse_labelare exported - Add option system #70
- Add better control over tick label rotation and justification #60
- Optionally plot subject ID rather than points in scatter plots #63
- CWRESI plots now have default axis title “CWRES with interaction” #87
- Add dv_pred_ipred plot function #89
- Optionally overlay points on top of boxplots #13
- Refactor
col_labelso that punctuation incol//labeldoes not result in error #72
pmplots 0.1.0.9002
- Added non-exported functions to generate default col-label information (see
?pm_axis_functions) - Added
npde_time,npde_tadandnpde_tafd,npde_pred,npde_hist, andnpde_qfunctions - Added
res_hist,wres_hist, andcwres_histalong with the more generalcont_histfunctions for plotting residuals or other continuous variables as histograms - Vectorized
eta_cont,(cw)res_cont,eta_cat, and(cw)res_cat; see function help for more details about what this means - Added
cont_cont_listandcont_cat_listas vectorized versions ofcont_contandcont_cat - Added internal functions that facilitate the creation of vectorized plotting function calls
- Reorganized the R source files and split several composite help topics into more focused topics
- Added
pairs_plotas a more-generic front end toggpairs - Dots are now passed through
eta_pairsandpairs_plottoGGally::ggpairs; this allows users to pass in a mapping for colors etc - Added arguments for
pairs_plotto allow users to pass in custom functions forupperandlower - For the default
lowerfunction inpairs_plot, the mapping object is checked forsmooth_colorandsmooth_ltyfor more control over the smoothing line - Remove
shkargument topairs_plot - Re-configured code to handle user-supplied
xsandysinformation; axis titles respect user-suppliednamesettings for scales - Added functions to
rot_xandrot_yto rotate tick labels - Added
scalesargument todv_predanddv_ipred; by default (scales = "fixed"), the x- and y-axis have the same limits; whenscales = "free"limits are chosen by ggplot2 and will likely be different for x- and y-axis - Fixed bug in
split_plotwhen splitting by a factor that doesn’t have all level present - Fixed bug in
wres_qrelated to indexing a tibble - Added functions to export look and feel:
pm_theme,pm_abline,pm_smooth,pm_hline,pm_histogram; these functions help make the plots look consistent with other plots if you are making reference lines, smooths, etc;pm_themeis still just a wrapper aroundtheme_bw() -
eta_pairsdispatches toeta_histwhen there is only one eta in the mix #14 - A density line is by default plotted over histograms for
cwres,wres, andnpde - Changed all plots so that axis titles are generated with
labsrather than viascale_(x|y)_continuous#23 - ggplot2 version 3.0.0 or greater is now required
-
col_labelspecification can now be automatically parsed to generate expressions to be rendered with plotmath; if two$symbols are found in the title, pmplots will try to load the latex2exp namespace and pass the axis title throughlatex2exp::TeX. Otherwise, if the axis title begins with!!, then pmplots will parse the column title to generate the expression - Added cowplot as a suggested package to work with
pm_grid - Fixed a bug introduced with ggplot2 version 3 when used with
eta_pairs#17 -
split_plotnow accepts agroupeddata frame as input; the list of plots will be generated by splitting the data frame on grouping column #32 - Added faceted plots:
wrap_cont_cont,wrap_cont_time,wrap_res_time,wrap_eta_cont,wrap_hist, andwrap_dv_preds
pmplots 0.1.0.9001
- Fixed
logbr3so that the values are sorted; this fixes an issue where the grid lines were not properly displayed with these breaks - Fixed issue in
dv_timeanddv_predwhen modifying the x-scale and y-scale through xs and ys arguments - Changed
dv_timeanddv_predso that breaks are at half-log units whenlog = TRUEorloglog = TRUE
