Learn R Programming

sjPlot (version 1.9.4)

sjp.stackfrq: Plot stacked proportional bars

Description

Plot items (variables) of a scale as stacked proportional bars. This function is useful when several items with identical scale/categoroies should be plotted to compare the distribution of answers.

Usage

sjp.stackfrq(items, legendLabels = NULL, sort.frq = NULL, weightBy = NULL,
  weightByTitleString = NULL, hideLegend = FALSE, title = NULL,
  legendTitle = NULL, includeN = TRUE, axisLabels.y = NULL,
  breakTitleAt = 50, breakLabelsAt = 30, breakLegendTitleAt = 30,
  breakLegendLabelsAt = 28, gridBreaksAt = 0.2, expand.grid = FALSE,
  geom.size = 0.5, geom.colors = "Blues", axisTitle.x = NULL,
  axisTitle.y = NULL, showValueLabels = TRUE, labelDigits = 1,
  vjust = "center", showPercentageAxis = TRUE, showItemLabels = TRUE,
  showSeparatorLine = FALSE, separatorLineColor = "grey80",
  separatorLineSize = 0.3, coord.flip = TRUE, printPlot = TRUE)

Arguments

Value

(Insisibily) returns the ggplot-object with the complete plot (plot) as well as the data frame that was used for setting up the ggplot-object (df).

See Also

  • http://www.strengejacke.de/sjPlot/sjp.stackfrq/{sjPlot manual: sjp.stackfrq}
  • sjt.stackfrq

Examples

Run this code
# -------------------------------
# random sample
# -------------------------------
# prepare data for 4-category likert scale, 5 items
Q1 <- as.factor(sample(1:4, 500, replace = TRUE, 
                       prob = c(0.2, 0.3, 0.1, 0.4)))
Q2 <- as.factor(sample(1:4, 500, replace = TRUE, 
                       prob = c(0.5, 0.25, 0.15, 0.1)))
Q3 <- as.factor(sample(1:4, 500, replace = TRUE, 
                       prob = c(0.25, 0.1, 0.4, 0.25)))
Q4 <- as.factor(sample(1:4, 500, replace = TRUE, 
                       prob = c(0.1, 0.4, 0.4, 0.1)))
Q5 <- as.factor(sample(1:4, 500, replace = TRUE, 
                       prob = c(0.35, 0.25, 0.15, 0.25)))

likert_4 <- data.frame(Q1, Q2, Q3, Q4, Q5)

# create labels
levels_4 <- c("Independent", 
              "Slightly dependent", 
              "Dependent", 
              "Severely dependent")

# plot stacked frequencies of 5 (ordered) item-scales
sjp.stackfrq(likert_4, legendLabels = levels_4)


# -------------------------------
# Data from the EUROFAMCARE sample dataset
# -------------------------------
library(sjmisc)
data(efc)
# recveive first item of COPE-index scale
start <- which(colnames(efc) == "c82cop1")
# recveive first item of COPE-index scale
end <- which(colnames(efc) == "c90cop9")
# auto-detection of labels
sjp.stackfrq(efc[, c(start:end)])

Run the code above in your browser using DataLab