2016-03-10 5 views
0

Я сделал сложную гистограмму, однако сегменты третьего бара находятся в другом порядке; сегмент, который должен быть на дне теперь на вершине, см изображение:1 бар в неправильном порядке в штабелированной гистограмме (R ggplot2)

stacked bar chart

Когда я изменить порядок оси х, он делает то же самое с 3-й строке. Как я могу это решить? Что-то не так с кодом?

library('ggplot2') 
bar <- ggplot(data.location, aes(Location, value, fill=variable)) 
bar + stat_summary(fun.y=mean, geom="bar", position="stack")+labs(x="Location", y="value", fill="variable") 

Добавлено: выход из dput (data.location)

dput(data.location[data.location$Location %in% c('BRM', 'CG', 'DDO'),]) 

structure(list(Location = structure(c(2L, 3L, 5L, 2L, 3L, 5L, 
2L, 3L, 5L, 2L, 3L, 5L), .Label = c("BA", "BRM", "CG", "CH", 
"DDO", "DR", "FB", "GG", "GI", "GQS", "HC", "HS", "LL1", "LL2", 
"MOW", "PP", "TP", "TR", "TRD", "WB"), class = "factor"), Zone = c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), variable = structure(c(1L, 
1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 4L), .Label = c("A", "B", "C", "D" 
), class = "factor"), value = c(425.810194245673, 815.265455416096, 
735.274721619422, 997.041922511793, 2147.03610300279, 1210.08829970945, 
0, 177.692085889937, 173.266014794846, 406.498315338813, 1293.35105648741, 
234.022025228589)), .Names = c("Location", "Zone", "variable", 
"value"), row.names = c(2L, 3L, 5L, 22L, 23L, 25L, 42L, 43L, 
45L, 62L, 63L, 65L), class = "data.frame")​ 
+0

вы можете добавить 'dput (data.location)', скажем, первые три бара? 'dput (data.location [data.location $ Location% in% c ('BRM', 'CG', 'DDO'),])' – rawr

+0

@rawr Я добавил dput (data.location) –

+0

спасибо! хотя с этими данными ваш код работает для меня, как вы хотите. Решение @ wyldsoul работает для вас? Я также замечаю, что у вас нет легенды на картинке, и какой другой код вы используете для создания этого сюжета? – rawr

ответ

0

Используя следующий код, я получаю последовательный порядок баров.

ggplot(data.location,aes(Location,value,fill=variable,order=variable))+ 
geom_bar(stat="identity") 

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^