R语言如何制作堆叠柱状图

ggplot2
R语言
数据清理
tidyverse
发布日期

2022年11月29日

数据准备

library(tidyverse)
df<-data.frame(month=rep(month.abb,each=3),class=c('A','B',"C"),value=runif(36))
head(df)
  month class      value
1   Jan     A 0.54406781
2   Jan     B 0.69672688
3   Jan     C 0.37239935
4   Feb     A 0.39981175
5   Feb     B 0.63939803
6   Feb     C 0.09215806
ggplot(data=df,aes(x=month,weight=value,fill=class))+
  geom_bar(position = 'stack')

ggplot(data=df,aes(x=month,y=value,fill=class))+
  geom_col(position = 'stack')

ggplot(data=df,aes(x=month,weight=value,fill=class))+
  geom_bar(position="dodge")

ggplot(data=df,aes(x=month,weight=value,fill=class))+
  geom_bar()

有序列表

df.2 <- df %>%
  mutate(month=ordered(month,levels=month.abb),
         class=ordered(class,levels=c("A","B","C")))
p<-ggplot(df.2,aes(month,value,fill=class))+
  geom_col()
p

样式修改

p+theme_classic()+
  scale_fill_brewer(palette = "Set1")

library(RColorBrewer)
display.brewer.all()