2016-06-07 2 views
1

Моего фрейма данных это одна:Как сделать штангу в ggplot2 с горизонтальными и вертикальными штабелями?

data <- data.frame("GROUP"= c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3), "C1_PERCENTAGE" = c(0, 10 ,22, 34, 37, 18, 24, 13), "C2_PERCENTAGE"=c(0, 8, 20, 24, 23, 11, 18, 9)) 

Я хочу, чтобы произвести бар участок с решеткой уложенной горизонтально, основанный на GROUP так, что будет три группы баров по горизонтали. И вертикально, я хочу складывать бары на основе C1_PERCENTAGE и C2_PERCENTAGE.

Я хочу использовать ggplot2. Я использовал базовую графику, но это только для C1_PERCENTAGE.

barplot(data$C1_PERCENTAGE, col = as.factor(data$GROUP) 

enter image description here

Это дает сюжет для C1_PERCENTAGE. Я хотел бы C2_PERCENTAGE также рядом с этими барами.

+0

Это не [плитки сюжет] (http://docs.ggplot2.org/current/geom_tile.html)? – zx8754

+0

Возможно, 'barplot (" colnames <- "(t (data) [- 1,], data [, 1]), рядом = TRUE)' – akrun

+0

Возможный дубликат [ggplot2 - Stacked Bar Chart] (http: // stackoverflow .com/questions/21236229/ggplot2-stacked-bar-chart) – theArun

ответ

2

У меня есть два разных варианта.

Сначала нам нужно подготовить данные, (a) добавить id, (b) изменить формат в длинный формат.

подготовки данных

library(data.table) 
d <- data.table(
    "id" = 1:24, 
    "GROUP" = c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3), 
    "C1_PERCENTAGE" = c(0, 10 ,22, 34, 37, 18, 24, 13), 
    "C2_PERCENTAGE"=c(0, 8, 20, 24, 23, 11, 18, 9) 
) 
ld <- melt(d, id.vars = c("id", "GROUP")) 

сложены гистограмма

library(ggplot2) 
ggplot(ld, aes(x = id, y = value, fill = variable)) + 
    geom_bar(stat = "identity", position = "stack") 

enter image description here

граненых Гистограмма

ggplot(ld, aes(x = id, y = value, fill = factor(GROUP))) + 
    geom_bar(stat = "identity", position = "stack") + 
    facet_wrap(~ variable, ncol = 1) 

enter image description here

+0

@technOslerphile Спасибо, что приняли мой ответ - но какой из двух вариантов, наконец, ответил на ваш вопрос/отвечал вашим требованиям. Спасибо. – Uwe

+0

Пришлось отредактировать код для фасетной гистограммы в соответствии с графиком – Uwe

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

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