R中的组合堆栈和组条形图

问题描述 投票:0回答:1

我的数据框看起来像:

year A B C
1983 1 2 10
1983 2 3 7
1984 1 3 7
1984 2 4 8
1985 1 6 6
1985 2 5 10

我想生成一个按A分组的条形图,并将B的值显示为C的子集,如下所示:enter image description here

您知道如何执行此操作吗?

r ggplot2 stack grouping bar-chart
1个回答
0
投票

使用dplyrtidyrggplot2 facet_的建议解决方案:

df <- read.table(text='year A B C
1983 1 2 10
1983 2 3 7
1984 1 4 7
1984 2 0 8
1985 1 6 6
1985 2 5 10', header=TRUE, stringsAsFactors=FALSE)

library(dplyr)
library(tidyr)
library(ggplot2)

df %>% 
  pivot_longer(cols = c(B, C)) %>% 
  ggplot(aes(factor(A), value, fill=name)) +
    geom_bar(stat="identity", position="stack") +
  facet_grid(~year)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.