Используя ggplot2, я создаю гистограмму с коэффициентом на горизонтальной оси и еще один фактор для цвета заливки, используя уклоненную позицию. Моя проблема заключается в том, что фактор заполнения иногда принимает только одно значение для значения горизонтального коэффициента, и ни с чем не уклоняться от полосы занимает всю ширину. Есть ли способ заставить его ничего не уклониться, чтобы все ширины бара были одинаковыми? Или, что то же самое, чтобы построить 0?
Например
ggplot(data = mtcars, aes(x = factor(carb), fill = factor(gear))) +
geom_histogram(position = "dodge")
Этот ответ содержит пару идей. Его также спросили, прежде чем новая версия была выпущена, так что, может быть, что-то изменилось? Использование граней (также показано здесь) Мне не нравится моя ситуация, хотя я полагаю, что редактирование данных и использование geom_bar
могут работать, но это чувствует себя неэлегантно. Более того, когда я все-таки пробовал аранжировать
ggplot(mtcars, aes(x = factor(carb), fill = factor(gear))) +
geom_bar() + facet_grid(~factor(carb))
Я получаю сообщение об ошибке "Ошибка в layout_base (данные, cols, drop = drop): По крайней мере один слой должен содержать все переменные, используемые для фацетирования"
Я полагаю, что я мог бы создать кадр данных из counts, а затем использовать geom_bar
,
mtcounts <- ddply(subset(mtcars, select = c("carb", "gear")),
.fun = count, .variables = c("carb", "gear"))
заполняя уровни, отсутствующие 0. Кто-нибудь знает, будет ли это работать или если есть лучший способ?