IMP researchR plot基本图形绘制

【R语言】--- 分组柱状图

2021-11-20  本文已影响0人  生态数据

基本简介

分组柱状图,又叫聚合柱状图。当需要在同一个轴上显示各个分类下不同的分组时,需要用到分组柱状图,是学术论文中常用的图。每个分组中的柱子使用不同的颜色或者相同颜色不同透明的方式区别各个分类,各个分组之间需要保持间隔。

基本用法

利用ggplot2包进行绘制,这里不赘述。

示例

##批量加载包
{library(ggplot2)
  library(reshape2)
  library(cowplot)
}
#清空
rm(list = ls())
##载入iris数据
data <- iris
###melt()函数重新融合数据
df <- melt(data, id="Species", variable.name="Attribute", value.name = "Size")
head(df)
##计算3种鸢尾花形态数据数据均值、标准差
mean <- aggregate(df$Size, by=list(df$Species, df$Attribute), FUN=mean)
sd <- aggregate(df$Size, by=list(df$Species, df$Attribute), FUN=sd)
###计算3种鸢尾花的个数
len <- aggregate(df$Size, by=list(df$Species, df$Attribute), FUN=length)
##合并均值和标准差为数据格式
df_res <- data.frame(mean, sd=sd$x, len=len$x)
##为合并好的数据命名列名
colnames(df_res) = c("Species", "Attribute", "Mean", "Sd", "Count")
##查看合并并命名后的数据
df_res
###计算3种鸢尾花的标准误se=sd/sqrt(n)
df_res$Se <- df_res$Sd/sqrt(df_res$Count)
#######绘图#########
##########用SE(标准误差/标准误)进行作图###########
a<-ggplot(df_res, aes(x=Attribute, y=Mean, fill=Species)) +
  geom_bar(stat="identity", position=position_dodge(),
           color="black", width=.8) +
  geom_errorbar(aes(ymin=Mean-Se, ymax=Mean +Se),
                position=position_dodge(.8), width=.2) +
  theme_bw()+
  scale_y_continuous(expand=c(0,0))+
  coord_cartesian(ylim = c(0, 8))+
  theme(axis.text.x = element_text(size = 14, color = "black"))+##设置x轴字体大小
  theme(axis.text.y = element_text(size = 14, color = "black"))+##设置y轴字体大小
  theme(title=element_text(size=13))+#设置标题字体大小
  theme_bw()
a
##########用SD(标准偏差/标准差)进行作图###########
b<-ggplot(df_res, aes(x=Attribute, y=Mean, fill=Species)) +
  geom_bar(stat="identity", position=position_dodge(),
           color="black", width=.8) +
  geom_errorbar(aes(ymin=Mean-Sd, ymax=Mean +Sd),
                position=position_dodge(.8), width=.2) +
  theme_bw()+
  scale_y_continuous(expand=c(0,0))+
  coord_cartesian(ylim = c(0, 8))+
  theme(axis.text.x = element_text(size = 14, color = "black"))+##设置x轴字体大小
  theme(axis.text.y = element_text(size = 14, color = "black"))+##设置y轴字体大小
  theme(title=element_text(size=13))+#设置标题字体大小
  theme_bw()
b
#######合并两张图#########
plot_grid(a, b, labels = LETTERS[1:2])
#######合并四张图#########
plot_grid(a, b, a, b, labels = LETTERS[1:4])

#保存图片
ggsave('Result.png')

参考文献

[1] https://www.rdocumentation.org/packages/ggplot2/versions/3.3.5
[2] https://ggplot2-book.org/preface-to-the-second-edition.html

上一篇下一篇

猜你喜欢

热点阅读