Вы можете легко добиться этого, используя ggplot2
и reshape2
.Вам понадобится столбец идентификатора для отслеживания строк, поэтому я добавил его. Я объединяю данные в длинный тип, чтобы можно было соответствующим образом управлять различными группами и составлять их графики.Затем построите график, используя geom_bar
, указав идентификаторы строк в качестве оси x и группировки (fill
и colour
) для стекового графика и легенды.
library(reshape2)
library(ggplot2)
df <- data.frame("ID" = c(1,2,3,4,5), "car" = c(1,2,4,5,3), "suv" = c(2,3,1,4,1), "pickup" = c(1, 4, 2, 2, 1))
long_df <- df %>% melt(id.vars = c("ID") ,value.name = "Number", variable.name = "Type")
ggplot(data = long_df, aes(x = ID, y = Number)) +
geom_bar(aes(fill = Type, colour = Type),
stat = "identity",
position = "stack")
С базой R
df %>% melt(id.vars = c("ID") ,value.name = "Number", variable.name = "Type") %>%
dcast(Type ~ ID, value.var = "Number") %>%
as.matrix() %>%
barplot()