Я новичок в ggplot2 и задаюсь вопросом о создании штабелированного штрихового графика. Я проверил книгу и выделенную веб-страницу, но не могу решить проблему. У меня есть два фактора, один из которых имеет 2 уровня (отсутствие присутствия), остальные 10 уровней. Позволяет называть эти две "переменные" и "фрукты".
Я хотел бы создать график сложенной штриховкой, где каждый бар отражает тип плода, а количество наблюдений отсутствия присутствия в "переменной" укладывается друг на друга. Это относительно легко (см. Код для графика 1 ниже), но мне также хотелось бы, чтобы бары и ось y отображали количество отсчетов отсутствия присутствия в "переменной" в процентах. Другими словами, все бары должны иметь одинаковую высоту (отражающую в общей сложности 100%), а подсчет наблюдений отсутствия присутствия должен быть преобразован в проценты.
Я могу изменить масштаб оси y на процент, используя..count.. * 100/sum (.. count.), но я не могу понять, как преобразовать фактические бары. Я создал еще один сюжет с огранкой (код для сюжета 2 ниже), который достигает того, что я хочу с точки зрения процентов, но я предпочел бы два бара друг на друга. Кто-нибудь имеет представление о том, как достичь этого? Я предоставил фиктивные данные и воспроизводимый пример. Спасибо за любую помощь.
Стив
dat <- data.frame( fruit=c("Apple", "Apple", "Orange", "Orange", "Orange", "Orange",
"Orange", "Pear", "Pear", "Pear"), variable=c("Present", "Absent",
"Present", "Present", "Present", "Present", "Absent", "Absent",
"Absent", "Present") )
# stacked bar plot
ggplot(dat, aes(x = fruit, fill = variable) ) +
geom_bar( aes(y = ..count..*100/sum(..count..) ) ) +
xlab("Fruit") +
ylab("Would like this to be percentage") +
scale_fill_manual("Condition", values = alpha( c("firebrick", "dodgerblue4"), 1) )
# with faceting
ggplot(dat, aes(x = variable, fill = variable) ) +
geom_bar( aes(y = ..count..*100/sum(..count..) ) ) +
facet_grid(. ~ fruit) +
xlab("Fruit") +
ylab("Would like this to be percentage") +
scale_fill_manual("Condition", values = alpha( c("firebrick", "dodgerblue4"), 1) )