| plot_bars | R Documentation |
Creates a faceted bar chart showing the response distribution for each item, with counts and percentages displayed on each bar. Each item gets its own panel, with response categories on the x-axis and percentage of responses on the y-axis. This is a descriptive data visualization tool intended for use before model fitting.
plot_bars(
data,
item_labels = NULL,
category_labels = NULL,
ncol = 1,
label_wrap = 25,
text_y = 6,
viridis_option = "A",
viridis_end = 0.9,
font = "sans"
)
data |
A data frame in wide format containing only the item response columns. Each column is one item, each row is one person. All columns must be numeric (integer-valued). Response categories may be coded starting from 0 or 1. Do not include person IDs, grouping variables, or other non-item columns. |
item_labels |
An optional character vector of descriptive
labels for the items (facet strips). Must be the same length
as |
category_labels |
An optional character vector of labels
for the response categories (x-axis). Must be the same length
as the number of response categories spanning from the minimum
to the maximum observed value. If |
ncol |
Integer. Number of columns in the faceted layout. Default is 1. |
label_wrap |
Integer. Number of characters per line in facet strip labels before wrapping. Default is 25. |
text_y |
Numeric. Vertical position (in percent units) for the count labels on each bar. Adjust upward if bars are tall. Default is 6. |
viridis_option |
Character. Viridis palette option for the
count text color. One of |
viridis_end |
Numeric in |
font |
Character. Font family for all text. Default is
|
Each item is displayed as a separate facet panel with the item
label in the strip on the left side. Bars are colored by response
category using the viridis palette. Each bar shows the count
(n = X) as text.
Input requirements:
All columns must be numeric (integer-valued).
The data frame must contain at least 2 columns (items) and at least 1 row (person).
A ggplot object.
library(ggplot2)
if (requireNamespace("eRm", quietly = TRUE))
# Basic response distribution plot
plot_bars(eRm::pcmdat2)
# With custom item labels
plot_bars(
eRm::pcmdat2,
item_labels = c("Mood", "Sleep", "Appetite", "Energy")
)
# Two-column layout with wrapped labels
plot_bars(
eRm::pcmdat2,
item_labels = c(
"General mood and emotional wellbeing",
"Quality of sleep at night",
"Appetite and eating habits",
"Overall energy level during the day"
),
ncol = 2, label_wrap = 20
)
# With custom category labels
plot_bars(
eRm::pcmdat2,
category_labels = c("Never", "Sometimes", "Often")
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.