Способ всегда уклоняться от гистограммы?

Используя ggplot2, я создаю гистограмму с коэффициентом на горизонтальной оси и другим коэффициентом для цвета заливки, используя позицию уклонения. Моя проблема заключается в том, что коэффициент заполнения иногда принимает только одно значение для значения горизонтального фактора, и, когда нечего уклоняться, полоса занимает всю ширину. Есть ли способ заставить его ничего не уклоняться, чтобы ширина всех полос была одинаковой? Или, что то же самое, построить 0?

Например

ggplot(data = mtcars, aes(x = factor(carb), fill = factor(gear))) +
geom_histogram(position = "dodge")

enter image description here

В этом ответе есть пара идей. Тоже спрашивалось перед выходом новой версии, так может что-то поменялось? Использование фасетов (также показано здесь)Мне не нравится моя ситуация, хотя я полагаю, что редактирование данных и использование geom_barмогут сработать, но это кажется неэлегантным. Более того, когда я все равно пытался фасетировать

ggplot(mtcars, aes(x = factor(carb), fill = factor(gear))) +
    geom_bar() + facet_grid(~factor(carb))

, я получаю сообщение об ошибке «Ошибка в макете_базе(данных, cols, drop = drop):По крайней мере, один слой должен содержать все переменные, используемые для фасетирования»

. Я полагаю, что мог бы сгенерировать фрейм данных счетчиков, а затем использовать geom_bar,

mtcounts <- ddply(subset(mtcars, select = c("carb", "gear")),
   .fun = count,.variables = c("carb", "gear"))

, заполнив уровни, которых нет, нулями. Кто-нибудь знает будет ли это работать или есть способ получше?

12
задан Community 23 May 2017 в 12:34
поделиться