Changelog
Source:NEWS.md
sjPlot 2.8.14
CRAN release: 20230402

tab_model()
,plot_model()
andplot_models()
get astd.response
argument, to include or exclude the response variable from standardization.
sjPlot 2.8.8
CRAN release: 20210525
Changes to functions

tab_model()
now works properly with forthcoming parameters update.
Bug fixes

plot_models()
did not work properly for Bayesian models.
sjPlot 2.8.7
CRAN release: 20210110
Changes to functions

tab_model()
also gains anencoding
argument. 
tab_df()
andtab_dfs()
no longer set the argumentshow.rownames
toTRUE
. Therefore, both functions now use row numbers as row names, if no other rownames are present. 
tab_dfs()
also gains adigits
argument.
Bug fixes
 Argument
df.method
intab_model()
did not accept all available options that were documented.  Fix CRAN check issues (warnings in new Rdevel).
sjPlot 2.8.6
CRAN release: 20201028
Changes to functions
 When
dv.labels = ""
intab_model()
, the row with names of dependent variables is omitted.
Bug fixes
 Fix CRAN check issues (removed crossreferences to archived packages).
 The
minus.sign
argument intab_model()
now works. 
show.std = TRUE
intab_model()
did not exponentiate standardized coefficients for nonGaussian models.
sjPlot 2.8.5
CRAN release: 20200924
Changes to functions

tab_model()
gains an argumentdf.method
, which will replace the less genericp.val
argument in the future. Currently,df.method
is an alias ofp.val
.
Bug fixes
 Fixed issue with wrong n’s in
plot_stackfrq()
when weights were applied.  Fixed issue
plot_stackfrq()
when weights were applied and items should be sorted.  Fixed issue in
plot_models()
for models without intercept.  Fixed issue for wrong legend labelling in
plot_models()
when showing pstars.  Fixed issue in
plot_model()
withtype = "int"
in detecting interaction terms when these were partly in parenthesis (likea * (b + c)
).  Fixed issue in
tab_model()
with argumentsshow.stat = TRUE
andshow.std = TRUE
, where the related statistic and CI columns for standardized coefficients were not shown.  Fixed issue in
tab_model()
for brmsfit models that did no longer show random effects information after the last update from the performance package.  Fixed issue with argument
show.rownames
intab_df()
.
sjPlot 2.8.4
CRAN release: 20200524
Changes to functions
 The robust estimation (argument
vcov.fun
intab_model()
orplot_model()
) now also uses and thus accepts estimationtypes from package clubSandwich. 
tab_model()
now accepts all options forp.val
that are supported byparameters::model_parameters()
.  The
p.style
argument intab_model()
was slightly revised, and now also accepts"scientific"
as option for scientific notation of pvalues. 
tab_model()
gets adigits.re
argument to define decimal part of the random effects summary. 
plot_models()
gainsvalue.size
andline.size
arguments, similar toplot_model()
. 
plot_models()
should sort coefficients in their natural order now.
Bug fixes
 Fixed bug in
plot_xtab()
with wrong order of legend labels.  Fixed bug in
plot_models()
with wrong axis title for exponentiated coefficients.  Fixed bug in
tab_model()
that did not show standard error of standardized coefficients whenshow.se = TRUE
.
sjPlot 2.8.3
CRAN release: 20200309
General

tab_model()
andplot_model()
now support clogit models (requires latest update of package insight).
Changes to functions

tab_model()
gets ap.adjust
argument to adjust pvalues for multiple comparisons. 
tab_model()
,plot_model()
andplot_models()
get arobust
argument to easily compute standard errors, confidence intervals and pvalues based on robust estimation of the variancecovariance matrix.robust
is just a convenient shortcut forvcov.fun
andvcov.type
.
Bug fixes
 Fixed issue in
tab_model()
andplot_model()
for certain cases when coefficients could not be estimated and wereNA
.  Fixed issue in
tab_model()
withcollapse.ci
for Bayesian models.  Fixed issue in
tab_model()
whenp.val="kr"
andshow.df=TRUE
.  Fixed issue in
tab_model()
with formatting issues of pvalues when standardized coefficients where requested.  Fixed issue in
tab_model()
due to changes in other packages sjPlot depends on.
sjPlot 2.8.2
CRAN release: 20200123
Function renaming

sjt.itemanalysis()
is now namedtab_itemscale()
. 
sjt.xtab()
is now namedtab_xtab()
.
Changes to functions
 Improved handling for
tab_model()
of robust estimation in general and KenwardRoger or Satterthwaite approximations in particular for linear mixed models.  Revised code to cope with forthcoming tidyselectupdate.
Bug fixes
 Improved
tab_df()
now uses value labels for factors instead of numeric values.  Fixed some issues related to the lates brmsupdate.
sjPlot 2.8.1
CRAN release: 20191203
Changes to functions

tab_model()
gets argumentsbootstrap
,iterations
andseed
to return bootstrapped estimates.
Bug fixes
 Fixed issue in
tab_model()
with detecting labels whenauto.label = TRUE
.  Fixed issue in
tab_model()
for negative binomial hurdle mixed models (i.e. glmmTMB models with truncated negativebinomial family).  Fixed bug in
tab_model()
withshow.reflvl = TRUE
.  Fixed bug in
tab_model()
where labels for coefficients where not matching the correct coefficients.
sjPlot 2.8.0
CRAN release: 20191118
Breaking changes
 Cluster functions have been removed, as these are now reimplemented in the parameters package.
General
 Standardization of model parameters (in
plot_model()
ortab_model()
) now uses standardization based on refitting the model.
Changes to functions

plot_model()
getstype = "emm"
as marginal effects plot type, which is similar totype = "eff"
. See Plotting Marginal Effects of Regression Models for details.  The
verbose
argument inview_df()
now defaults toFALSE
.  Updated and rearranged internal color palette, especially to have a better behaviour when selecting colors from continuous palettes (see
show_pals()
).
Bug fixes

sort.est = NULL
inplot_model()
now preserves original order of coefficients.  Fixed bug in automatic axis labelling for
plot_frq()
for nonlabelled, numeric values.  Fixed bug in
plot_frq()
when plotting factors.  Arguments
string.std_ci
andstring.std_se
are no longer ignored intab_model()
.
sjPlot 2.7.2
CRAN release: 20190929
General
 Replaced
performance::principal_component()
byparameters::principal_component()
.  Fixed CRAN check issues, due to the latest bayestestR update.
Function renaming

sjp.grpfrq()
is now namesplot_grpfrq()
. 
sjp.xtab()
is now namesplot_xtab()
.
Changes to functions

plot_grid()
gets atags
argument to add tags to plotpanels.
Bug fixes
 Fixed bug in
plot_stackfrq()
for data frames with many missing values.  Fixed bug with sorting frequencies in
plot_frq()
when vector had more labels than values.  Fixed bug in
tab_model()
whereshow.reflvl = TRUE
did not insert the reference category in first place, but in alphabetical order.
sjPlot 2.7.1
CRAN release: 20190907
General
 Minor revisions to meet the changes in the forthcoming update from tidyr.
 new color palettes were added (see
show_sjplot_pals()
).
Changes to functions

tab_model()
now supports gamlss models. 
tab_df()
gets adigits
argument, to round numeric values in output.
Bug fixes
 Fixed bug in
tab_model()
withshow.df = TRUE
for lmerModLmerTest.  Fixed bug in
tab_stackfrq()
when items had different amount of valid values.
sjPlot 2.7.0
CRAN release: 20190802
Renamed functions

sjp.stackfrq()
was renamed toplot_stackfrq()
. 
sjt.stackfrq()
was renamed totab_stackfrq()
.
Changes to functions
plot_likert()
 showed category labels in the top and bottom legends in two rows if there are more than six categories. Also, the categories are ordered column wise instead of row wise. This behaviour can now be controlled for grouped likert plots, using
group.legend.options
. The ordering now defaults to row wise and the user can force all categories onto a single row.  now automatically adjusts labels to avoid overlapping.
tab_model()
 now supports
wbm()
models from the panelrpackage.  gets a
show.aicc
argument to show the second order AIC.  gets a
show.reflvl
argument to show the reference level of factors.  gets a
string.std_se
andstring.std_ci
argument to change the column header for standard errors and confidence intervals of standardized coefficients.  no longer prints a message that default pvalues for mixed models are based on Wald approximation.

show.ci50
defaults toFALSE
now.
sjt.itemanalysis()

sjt.itemanalysis()
now works on ordered factors. A clearer error message was added when unordered factors are used. The old error message was not helpful.  The
factor.groups
argument can now be"auto"
to detect factor groups based on a pca with Varimax rotation.
sjp.stackrq()

sjp.stackfrq()
was renamed toplot_stackfrq()
. 
sjp.stackfrq()
(now named:plot_stackfrq()
) gets ashow.n
argument to also show count values. This option can be combined withshow.prc
. 
sjp.stackfrq()
(now named:plot_stackfrq()
) now also works on grouped data frames.
changes to other functions

plot_model()
now supportswbm()
models from the panelrpackage.
Bug fixes

plot_model(type = "int")
now also recognized interaction terms with:
in formula.  Argument
string.est
intab_model()
did not overwrite the default label for the estimatecolumnheader.  Minor fix in
tab_model()
for mixed models that can’t compute R2.  Fix issue in
tab_model()
when printing robust standard errors and CI (i.e. when using argumentsvcov*
).  The
plot_likert()
optionreverse.scale = TRUE
resulted invalues = "sum.inside"
being outside and the other way around. This is fixed now. 
view_df()
mixed up labels and frequency values when value labels were present, but no such values were in the data.  Argument
wrap.labels
inplot_frq()
did not properly work for factor levels.  Fix issue in
plot_models()
that stopped for some models.  Fix issue in
sjt.stackfrq()
, whenshow.na = TRUE
and some items had zerovalues.
sjPlot 2.6.3
CRAN release: 20190427
General
 Export
dplyr::n()
, to meet changes in dplyr 0.8.0. 
plot_model()
andtab_model()
now supportMixMod
objects from package GLMMadpative,mlogit
 andgmnl
models.
Renamed functions

sjp.kfold_cv()
was renamed toplot_kfold_cv()
. 
sjp.frq()
was renamed toplot_frq()
.
Changes to functions
tab_model()

tab_model()
gets ashow.ngrps
argument, which adds back the functionality to print the number of random effects groups for mixed models. 
tab_model()
gets ashow.loglik
argument, which adds back the functionality to print the model’s logLikelihood. 
tab_model()
gets astrings
argument, as convenient shortcut for setting columnheader strings. 
tab_model()
gets additional argumentsvcov.fun
,vcov.type
andvcov.args
that are passed down tosjstats::robust()
, to calculate different types of (clustered) robust standard errors.  The
p.style
argument now also allows printing both numeric pvalues and asterisks, by usingp.style = "both"
.
plot_likert()

plot_likert()
gets areverse.scale
argument to reverse the order of categories, so positive and negative values switch position. 
plot_likert()
gets agroups
argument, to group items in the plot (thanks to @ndevln).  Argument
grid.range
inplot_likert()
now may also be a vector of length 2, to define diffent length for the left and right xaxis scales.
Other

plot_frq()
(formersjp.frq()
) now has pipeconsistent syntax, enables plotting multiple variables in one function call and supports grouped data frames. 
plot_model()
gets additional argumentsvcov.fun
,vcov.type
andvcov.args
that are passed down tosjstats::robust()
, to calculate different types of (clustered) robust standard errors. 
sjt.xtab()
,sjp.xtab()
,plot_frq()
andsjp.grpfrq()
get adrop.empty()
argument, to drop values / factor levels with no observations from output.
Bug fixes
 Legend labels were inverted for brmsmodels in
plot_model(..., type = "diag")
.  Legend labels were duplicated for marginal effects plots when
color ="bw"
andlegend.title
was specified.  Fixed encoding issues with helpfiles.

view_df()
did not truncate frequency and percentagevalues for variables where value labels were truncated to a certain maximum number. 
tab_model()
did not print number of observations forcoxph
models.
sjPlot 2.6.2
CRAN release: 20181218
Removed / Defunct
Following functions are now defunct:

sjt.lm()
,sjt.glm()
,sjt.lmer()
andsjt.glmer()
. Please usetab_model()
instead.
Changes to functions

tab_model()
supports printing simplex parameters of monotonic effects of brms models. 
tab_model()
gets aprefix.labels
argument to add a prefix to the labels of categorical terms.  The
rotation
argument insjt.pca()
andsjp.pca()
now supports all rotations frompsych::principal()
.
Bug fixes

plot_model()
no longer automatically changes the plottype to"slope"
for models with only one predictor that is categorical and has more than two levels. 
type = "eff"
andtype = "pred"
inplot_model()
did not work whenterms
was not specified.  If robust standard errors are requested in
tab_model()
, the confidence intervals and pvalues are now recalculated and adjusted based on the robust standard errors. 
colors = "bw"
was not recognized correctly forplot_model(..., type = "int")
.  Fix issue in
sjp.frq()
with correct axis labels for nonlabelled character vectors.
sjPlot 2.6.1
CRAN release: 20181014
Deprecated

sjt.lm()
,sjt.glm()
,sjt.lmer()
andsjt.glmer()
are now deprecated. Please usetab_model()
instead.
Changes to functions
 Arguments
dot.size
andline.size
inplot_model()
now also apply to marginal effects and diagnostic plots. 
plot_model()
now uses a free xaxis scale in facets for models with zeroinflated part. 
plot_model()
now shows multiple plots for models with zeroinflated parts whengrids = FALSE
. 
tab_model()
gets ap.style
andp.threshold
argument to indicate significance levels as asteriks, and to determine the threshold for which an estimate is considered as significant. 
plot_model()
andplot_models()
get ap.threshold
argument to determine the threshold for which an estimate is considered as significant.
Bug fixes
 Fixed bug from the last update that made value labels disappear for
plot_likert()
. 
tab_model()
now also accepts multiple modelobjects stored in alist
as argument, as stated in the helpfile.  The
file
argument now works again insjt.itemanalysis()
.  Argument
show.ci
intab_model()
did not compute confidence intervals for different levels.
sjPlot 2.6.0
CRAN release: 20180823
General

sjp.scatter()
was revised and renamed toplot_scatter()
.plot_scatter()
is pipefriendly, and also works on grouped data frames. 
sjp.gpt()
was revised and renamed toplot_gpt()
.plot_gpt()
is pipefriendly, and also works on grouped data frames.  Reduce package dependencies.
Renamed functions

sjp.scatter()
was renamed toplot_scatter()
. 
sjp.likert()
was renamed toplot_likert()
. 
sjp.gpt()
was renamed toplot_gpt()
. 
sjp.resid()
was renamed toplot_residuals()
.
Changes to functions
 Improved support for
brmsfit
objects with categoricalfamily forplot_model()
andtab_model()
. 
tab_model()
gets ashow.adj.icc
argument, to also show the adjusted ICC for mixed models. 
tab_model()
gets acol.order
argument, reorder the table columns.  Argument
hide.progress
inview_df()
is deprecated. Please useverbose
now.  The
statistics
argument insjt.xtab()
gets a"fisher"
option, to force Fisher’s Exact Test to be used.
Removed / Defunct
Following functions are now defunct:

sjp.lm()
,sjp.glm()
,sjp.lmer()
,sjp.glmer()
andsjp.int()
. Please useplot_model()
instead. 
sjt.frq()
. Please usesjmisc::frq(out = "v")
instead.
Bug fixes
 Due to changes in the broom and lmerTest packages, tidiers did no longer work for
lmerModLmerTest
objects.  Fix issue with standardized coefficient (argument
show.std
) intab_model()
.
sjPlot 2.5.0
CRAN release: 20180712
New functions

tab_model()
as replacement forsjt.lm()
,sjt.glm()
,sjt.lmer()
andsjt.glmer()
. Furthermore,tab_model()
is designed to work with the same modelobjects asplot_model()
.  New colour scales for ggplotobjects:
scale_fill_sjplot()
andscale_color_sjplot()
. These provide predifined colour palettes from this package. 
show_sjplot_pals()
to show all predefined colour palettes provided by this package. 
sjplot_pal()
to return colour values of a specific palette.
Deprecated
Following functions are now deprecated:

sjp.lm()
,sjp.glm()
,sjp.lmer()
,sjp.glmer()
andsjp.int()
. Please useplot_model()
instead. 
sjt.frq()
. Please usesjmisc::frq(out = "v")
instead.
Removed / Defunct
Following functions are now defunct:

sjt.grpmean()
,sjt.mwu()
andsjt.df()
. The replacements aresjstats::grpmean()
,sjstats::mwu()
andtab_df()
resp.tab_dfs()
.
Changes to functions

plot_model()
andplot_models()
get aprefix.labels
argument, to prefix automatically retrieved term labels with either the related variable name or label. 
plot_model()
gets ashow.zeroinf
argument to show or hide the zeroinflationpart of models in the plot. 
plot_model()
gets ajitter
argument to add some random variation to data points for those plot types that acceptshow.data = TRUE
. 
plot_model()
gets alegend.title
argument to define the legend title for plots that display a legend. 
plot_model()
now passes more arguments in...
down toggeffects::plot()
for marginal effects plots. 
plot_model()
now plots the zeroinflated part of the model forbrmsfit
objects. 
plot_model()
now plots multivariate response models, i.e. models with multiple outcomes.  Diagnostic plots in
plot_model()
(type = "diag"
) can now also be used withbrmsfit
objects.  Axis limits of diagnostic plots in
plot_model()
(type = "diag"
) for Stanmodels (brmsfit
orstanreg
resp.stanfit
) can now be set with theaxis.lim
argument.  The
grid.breaks
argument forplot_model()
andplot_models()
now also takes a vector of values to directly define the grid breaks for the plot.  Better default calculation for grid breaks in
plot_model()
andplot_models()
when thegrid.breaks
argument is of length one.  The
terms
argument forplot_model()
now also allows the specification of a range of numeric values in square brackets for marginal effects plots, e.g.terms = "age [30:50]"
orterms = "age [pretty]"
.  For coefficientplots, the
terms
 andrm.terms
arguments forplot_model()
now also allows specification of factor levels for categorical terms. Coefficients for the indicted factor levels are kept resp. removed (see?plot_model
for details). 
plot_model()
now supportsclmm
objects (package ordinal). 
plot_model(type = "diag")
now also shows randomeffects QQplots forglmmTMB
models, and also plots randomeffects QQplots for all random effects (if model has more than one random effect term).
Bug fixes

plot_model(type = "re")
now supports standard errors and confidence intervals forglmmTMB
objects.  Fixed typo for
glmmTMB
tidier, which may have returned wrong data for zeroinflation part of model.  Multiple random intercepts for multilevel models fitted with
brms
area now shown in each own facet per intercept.  Remove unnecessary warning in
sjp.likert()
for uneven category count when neutral category is specified. 
plot_model(type = "int")
could not automatically selectmdrt.values
properly for noninteger variables. 
sjp.grpfrq()
now correctly uses the complete space in facets whenfacet.grid = TRUE
. 
sjp.grpfrq(type = "boxplot")
did not correctly label the xaxis when one category had no elements in a vector.  Problems with German umlauts when printing HTML tables were fixed.