Collection of plotting and table output functions for data visualization. Results of various statistical analyses (that are commonly used in social sciences) can be visualized using this package, including simple and cross tabulated frequencies, histograms, box plots, (generalized) linear models, mixed effects models, principal component analysis and correlation matrices, cluster analyses, scatter plots, stacked scales, effects plots of regression models (including interaction terms) and much more. This package supports labelled data.
Collection of plotting and table output functions for data visualization. Results of various statistical analyses (that are commonly used in social sciences) can be visualized using this package, including simple and cross tabulated frequencies, histograms, box plots, (generalized) linear models, mixed effects models, PCA and correlation matrices, cluster analyses, scatter plots, Likert scales, effects plots of interaction terms in regression models, constructing index or score variables and much more.
To install the latest development snapshot (see latest changes below), type following commands into the R console:
Please note the package dependencies when installing from GitHub. The GitHub version of this package may depend on latest GitHub versions of my other packages, so you may need to install those first, if you encounter any problems. Here's the order for installing packages from GitHub:
To install the latest stable release from CRAN, type following command into the R console:
In case you want / have to cite my package, please use
citation('sjPlot') for citation information. Since core functionality of package depends on the ggplot-package, consider citing this package as well.
tab_dfs()as (more generic) replacement for
tab_df()prints the content of a data frame as HTML table, while
tab_dfs()prints a list of data frames into a HTML table. The HTML table is then displayed in the Viewer-pane of RStudio or in a web browser.
sjt.grpmean()is now deprecated. Please use
out = "viewer"instead.
sjt.mwu()is now deprecated. Please use
out = "viewer"instead.
sjt.df()is now deprecated. Please use
out = "viewer"or
plot_model()now also supports
clm-models from package ordinal,
polr-models from package MASS,
multinom-models from package nnet and
Zelig-relogit-models from package Zelig.
show.legend-argument to show or hide the legend for marginal effects plots.
se-argument to plot (robust) standard errors instead of confidence intervals for coefficient-plots.
type = "diag") now also plot diagnostics of random effects from (generalized) linear mixed models.
plot_model()now also accepts the arguments
sep_out, which are passed down to
snakecase::to_any_case()for case conversion of term labels (axis labels).
plot_model()now also works for plotting random effects (
type = "re").
sjt.itemanalysis()no longer returns a list of score items, but only a data frame of scores.
show.ci-argument to add notches to boxplots.
view_df()did not work with double values (with decimal points) when
show.values = TRUE.
view_df()caused an error when a variable has completely missing values.
plot_models()did not properly remove intercepts from output for survey models, when
show.intercept = FALSE.
plot_models()did not automatically transform axis for all applicable model types.
get_model_data()did not work for marginal effects plots.
sjt.grpmean(), resulting in multiple table outputs and a wrong overall p-value in the summary line.
sjp.likert()did not show correct order for factors with character levels, when a neutral category was specified and was not the last factor level.
type = "re") for specific
set_theme()was removed. Instead, there are some new predifined themes available (see
?"sjPlot-themes"). The former
sjp.setThemes()was renamed to
plot_model()as replacement for
sjp.int()(which will become deprecated in the future, and will later be removed).
get_model_data()to get the data from plot-objects created with
legend_style()as convenient ways to tweak common ggplot-theme-elements.
view_df()now better handles string variables and gets a
show.string.values-argument to omit the output of values from string variables.
max.len-argument to truncate output for variables with many values.
view_df()displays more information on non-labelled, numeric variables.
sjt.pca()now give more informative error messages when just one component is extracted.
view_df()did not work for string variables with missing values.
sjp.xtab()did not work when
show.prcwere set to
sjt.*-functions) displayed in the viewer pane now automatically add a CSS-style for white page background. This fixes an RStudio issue on OS X, where the new look'n'feel used dark backgrounds in the viewer pane, making output hardly readable.
plot_models()as replacement for
sjp.glmm()(which are now deprecated).
sjt.fa()to plot or print as table the results of factor analyses.
sjt.frq()were not correctly computed, when
auto.group-argument was specified. This bug was introduced in the last update and is not fixed again.
show.frq = TRUE).
sjt-functions can now be directly integrated into knitr-code-chunks, because sjPlot exports a knitr-print-method (see
sjtab()now also works within knitr-documents (see
save_plot()now also supports svg-format.
type = "eff"), the
axis.title-argument can now be used to change the title of y-axes.
sjp.glmer(), if color palette has more values than needed, it is silently shortend to the required length.
geom.colorsnow also applies to plot-type
type = "ri.slope".
emph.pfor printing tables of regression models now defaults to
sjt.frq()for variables with many missing values and labelled values that did not occur on that variable.
value.labelshad no effect for
sjt.grpmean()sometimes not worked for factors without variable labels.
sjp.glm()used Odds Ratios as default title for y-axis when plotting marginal effects. Fixed, now y-axis is correctly labelled.
sjt.glm()used "Odds Ratios" as default column heading for the estimates, even for poisson or other models. Now the string for column headers is selected based on the first model input of the function.
type = "pred") for categorical variables on the x-axis.
geom.colors = "bw"for linetype-plots, to create black & white figures that use different linetypes instead of different colors.
sjp.kfold_cv()now also supports poisson and negative binomial regression models.
rotation-argument, to use either varimax- or oblimin-transformation of factor loadings.
show.valuenow also applies to bar plots in
sjt.glm(), for generalized linar (mixed) models, now shows adjusted standard errors, using the Taylor series-based delta method.
sjt.xtab()is now dentoted as V.
...-argument, to pass down further arguments to the test statistics functions
statistics-argument, to select one of different measures of associations for the table summary.
type = "ma"now uses subtitles in multi-line plot-titles.
sjp.kfold_cv()had wrong leading sign (i.e. positive residuals were negative and vice versa).
sjp.kfold_cv()to plot model fit from k-fold cross-validation.
scatter.plotwas renamed to
sjt.frq()was renamed to
sjtab()also accept grouped data frames, to create plots or tables for all subgroups.
type = "pred",
type = "slope",
type = "pred.fe"and
type = "fe.slope"can now also plot data points when
show.scatter = TRUE. Use
point.alphato adjust alpha-level of data points.
type = "pred"and
type = "pred.fe"now plot error bars for
show.ci = TRUEand a discrete variable on the x-axis.
type = "pred"and
type = "pred.fe"now accept three variables for the
vars-argument, to facet grouped predictions by a third variable.
...-ellipses argument now is also passed down to all errorbars- and smooth-geoms in prediction- and effect-plots, so you can now use the
width-argument to show the small stripes at the lower/upper end of the error bars, the
alpha-argument to define alpha-level or the
level-argument to define the level of confidence bands.
point.color-argument, do define color of point-geoms when
show.scatter = TRUE. If not defined, point-geoms will have same group-color as lines.
type = "eff") now plot data points for discrete variables on the x-axis.
robust-argument to compute robust standard errors and confidence intervals.
sjp.resid()now also returns a plot with the residual pattern,
axis.titleargument. Use a character vector of length > 1 to define (axis) titles for each plot or facet; use
""to remove the titles.
geom.size-argument for histogram and density plots in
sjp.grpfrq()for stacked bars (
position_stack()reversed order since last ggplot2-update), so labels are now correclty positioned again.
sjp.likert(), so groups are now in correct order again.
sjt.grpmean()for variables with unused value labels (values that were labelled, but did not appear on the vector).
sjp.frq()showed messed up labels when a labelled vector had both
NaNor infinite values.
sjtab()did not create tables for
fun = "xtab"with additional arguments.
sjp.glmer()now support the
transformation-argument from the effects-package. For example, when calling
sjp.glm(fit, type = "eff", transformation = NULL), predictions are on their original scale (y-scale) and the title for the y-scale is changed accordingly.
sjp.stackfrq(), which were reversed by the last ggplot2-update, where
position_stack()now sort the stacking order to match grouping order.
sjplot()that caused figures not being plotted in certain situations.
sjp.lmm(), which caused an error for plotting multiple mixed models when Intercept was hidden.
sjp.lmm(), which caused an error for plotting multiple mixed models when
type = "std"or
type = "std2".
sjplot, a pipe-friendly wrapper for some of this package's plotting-functions.
sjtab, a pipe-friendly wrapper for some of this package's table-functions.
sjp.resid, an experimental function to plot and analyze residuals from linear models.
plot_gridto plot a list of ggplot-objects as arranged grid in a single plot.
set_themeto use a preset of default themes for plots from the sjp-functions.
show.cinow also applies for plotting random effects (
type = "re", the default), so confidence intervals may not be calculated. This may be useful in some cases where computation of standard errors for random effects caused an error.
type = "eff") for
sjp.glmershould now better handle categorical variables and their labels, including using error bars insted of regions for confidence intervals.
table(*, exclude = NULL)was changed to
table(*, useNA = "always"), because of planned changes in upcoming R version 3.4.
get_option("p_zero")was removed, and
sjp.setThemeno longer sets default theme presets for plots; use
type = "std".
type = "eff") for
sjp.glmerdid not plot all predictors, when predictor name was not exactly specified in formula, but transformed inside formula (e.g.
log(pred + 1)).