Добавление сложности к столбчатой ​​диаграмме с накоплением в ggplot

Я знаю, что это немного загромождено, но я пытаюсь разделить данные, составляющие мою столбчатую диаграмму с накоплением. Вот как это выглядит на данный момент:

A = ggplot(data=yield,aes(N,Mean.Yield,fill=Cutting))
B=A+facet_grid(Location~Mngmt)+geom_bar(stat="identity")
B+labs(x="Nitrogen Level")+labs(y="Yield (lb/acre)")

Получение этого графика: (Я бы опубликовал график, но, видимо, моя репутация как нового участника не в порядке!)

Как я могу разделить столбцы по фактору «виды»? Я предполагаю, что это связано с добавлением еще одной геометрии, но я новичок во всем этом. Спасибо!

Отредактировано для добавления: в моих данных есть попытка использовать mtcars для фиктивных данных, хотя это не лучший вариант, поскольку миль на галлон не складывается, как урожай за два отрезка.

mtcars$cyl=as.factor(mtcars$cyl)
mtcars$vs=as.factor(mtcars$vs)
mtcars$am=as.factor(mtcars$am)
mtcars$gear=as.factor(mtcars$gear)
mtcars$carb=as.factor(mtcars$carb)
A = ggplot(data=mtcars,aes(cyl,mpg,fill=gear))
B=A+facet_grid(am~vs)+geom_bar(stat="identity")

Это дает такой уродливый график: http://i.imgur.com/sK7A5am.png (http://i.imgur.com/sK7A5am.png) Я надеюсь разделить каждый из эти полосы (например, cylinders) на две расположенные рядом полосы (в этом примере 6 полосок, расположенных рядом друг с другом, обозначают расход топлива на галлон двигателей с различными уровнями carb для каждого фактора цилиндра). Я надеюсь это имеет смысл. Спасибо еще раз!


person Slim    schedule 06.01.2015    source источник
comment
Загрузите свой график на любой сайт с бесплатными изображениями, разместите URL здесь, мы отредактируем его для вас.   -  person smci    schedule 07.01.2015
comment
Что вы имеете в виду "разделить столбцы по видам факторов", второй фасет, или столбчатую диаграмму, или диаграмму, расположенную бок о бок?   -  person smci    schedule 07.01.2015
comment
@Slim У вас есть воспроизводимый пример? Если вы не можете или не желаете делиться своими данными, либо создайте фиктивные данные, либо используйте один из встроенных R наборы данных. В качестве ответа на свой вопрос вы можете использовать + в facet(): facet_grid(Location~Mngmt + species) или изменить цвет полос: geom_bar(stat="identity", aes(color = species)).   -  person Richard Erickson    schedule 07.01.2015
comment
график, который у меня есть: i.imgur.com/eZEaWfL.png Я полагаю, я не знаю, как выразить то, что я пытаюсь сказать. Я хочу разделить каждую из этих полос на две расположенные рядом полосы разных цветов.   -  person Slim    schedule 07.01.2015
comment
@RichardErickson, использующий + Species в facet(), определенно был близок к тому, что я ищу, но я думаю, я пытаюсь расположить эти полосы рядом. Я думаю, это называется чередованием?   -  person Slim    schedule 07.01.2015
comment
@smci Я продолжил редактирование, пытаясь предоставить фиктивные данные. Я надеюсь создать наложенные бок о бок штрих-диаграммы. это полный рот.   -  person Slim    schedule 07.01.2015
comment
возможный дубликат Проблема с ggplot2 , geom_bar и position = dodge: stacked имеет правильные значения y, dodged - нет   -  person Richard Erickson    schedule 07.01.2015


Ответы (1)


Хорошо, основываясь на ваших комментариях, я думаю, вы хотите изменить position в geom_bar(). Используя набор данных diamonds из ggplot2, это похоже на то, что вы хотите?

library(ggplot2)
## note the diamonds dataset comes with ggplot2

ggplot(diamonds, aes(clarity, fill=cut)) + 
    geom_bar(position="dodge") 

пример изображения из ggplot2
(источник: ggplot2.org)

Затем вы просто добавляете свой facet и другие данные. В примере diamonds это будет

ggplot(diamonds, aes(clarity, fill=cut)) + 
    geom_bar(position="dodge") + 
    facet_grid(color ~ clarity)

Я понял, как это сделать, просмотрев файлы справки ggplot2

person Richard Erickson    schedule 06.01.2015
comment
Я пробовал это, но когда я устанавливаю положение для уклонения, это сводит на нет желаемое добавочное наложение. Я попытался предоставить фиктивный код, используя набор данных mtcars в моем редактировании исходного набора данных. - person Slim; 07.01.2015
comment
@Slim Я просмотрел стеки и нашел кого-то еще с аналогичная проблема. Взглянем. У них возникает аналогичная проблема. Один из комментариев заключается в том, что я думаю, что вам нужно одновременно уклоняться и уклоняться, но вы не можете делать и то, и другое. К сожалению, я не думаю, что ggplot может делать то, что вы хотите. Вы можете попробовать разместить свой вопрос в группе Google ggplot2. - person Richard Erickson; 07.01.2015