Sposób na unikanie histogramu?

Korzystając z ggplot2, tworzę histogram z czynnikiem na osi poziomej i innym czynnikiem dla koloru wypełnienia, używając pozycji unikającej. Mój problem polega na tym, że współczynnik wypełnienia czasami przyjmuje tylko jedną wartość dla wartości współczynnika poziomego, a bez niczego, aby uniknąć, pasek zajmuje całą szerokość. Czy istnieje sposób na uniknięcie tego, aby wszystkie szerokości pasków były takie same? Lub ekwiwalentnie do wykreślenia zera?

Na przykład

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

Ta odpowiedź ma kilka pomysłów. Zapytano go także przed wydaniem nowej wersji, więc może coś się zmieniło? Korzystanie z faset (także pokazanetutaj) Nie podoba mi się moja sytuacja, choć przypuszczam, że edycja danych i użyciegeom_bar może działać, ale wydaje się nieelegancka. Co więcej, kiedy i tak próbowałam

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

Dostaję błąd „Błąd w layout_base (data, cols, drop = drop): Przynajmniej jedna warstwa musi zawierać wszystkie zmienne używane do aspektowania”

Przypuszczam, że mógłbym wygenerować ramkę danych, a następnie użyćgeom_bar,

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

wypełniając poziomy, których nie ma przy 0. Czy ktoś wie, czy to zadziała, czy jest lepszy sposób?

questionAnswers(2)

yourAnswerToTheQuestion