Есть ли способ создать блок-график в R, который будет отображать с блоком (где-то) «N = (размер выборки)»? Логическая переменная ширины регулирует ширину поля на основе размера выборки, но это не позволяет сравнивать различные графики.
FWIW, я использую команду boxplot следующим образом, где «f1» - фактор :
boxplot(xvar ~ f1, data=frame, xlab="input values", horizontal=TRUE)
Вот код ggplot2. Он будет отображать размер выборки как среднее значение выборки, что сделает этикетку многофункциональной!
Во-первых, простая функция для fun.data
give.n <- function(x){
return(c(y = mean(x), label = length(x)))
}
Теперь, чтобы продемонстрировать данные ромбов
ggplot(diamonds, aes(cut, price)) +
geom_boxplot() +
stat_summary(fun.data = give.n, geom = "text")
Возможно, вам придется поиграть с размером текста, чтобы он выглядел хорошо, но теперь у вас есть метка для размера выборки, который также дает представление о перекосе.
Вы можете использовать параметр names
, чтобы записать n
рядом с каждым именем фактора.
Если вы не хотите вычислять n
самостоятельно, вы можете использовать этот небольшой трюк:
# Do the boxplot but do not show it
b <- boxplot(xvar ~ f1, data=frame, plot=0)
# Now b$n holds the counts for each factor, we're going to write them in names
boxplot(xvar ~ f1, data=frame, xlab="input values", names=paste(b$names, "(n=", b$n, ")"))