Plots the comparison recorded by panel_benchmark(). Each covered response
level has one point for the panel share and one for the benchmark share,
joined by a segment. Response levels follow the instrument's option order,
and items appear in separate panels. The method requires a benchmark
record.
Usage
# S3 method for class 'panel_responses'
plot(x, ...)Arguments
- x
A
panel_administer()result thatpanel_benchmark()has been run on (the comparison is stored inx$benchmark).- ...
Ignored; reserved for generic dispatch.
Examples
if (requireNamespace("ggplot2", quietly = TRUE)) {
set.seed(110)
panel <- panel_from_margins(list(party = c(left = .5, right = .5)),
n = 12,
persona_template = "A voter who leans {party}.")
instrument <- panel_instrument(
item_choice("plan", "Which plan do you prefer?", c("Plan A", "Plan B")))
cfg <- LLMR::llm_config("groq", "openai/gpt-oss-20b")
by_party <- function(experiments, ...) {
experiments$response_text <- ifelse(
grepl("leans left", vapply(experiments$messages, `[[`, "", "system")),
"Plan A", "Plan B")
experiments
}
r <- panel_administer(panel, instrument, cfg, .runner = by_party)
bench <- data.frame(item_id = "plan",
response = c("Plan A", "Plan B"),
share = c(.55, .45))
plot(panel_benchmark(r, bench, "city survey 2025"))
}