我的数据框看起来像:
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的子集,如下所示:
您知道如何执行此操作吗?
使用dplyr
,tidyr
和ggplot2
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)