R语言科研编程-标准偏差柱状图

生成随机数据

在R中,可以使用rnorm()生成正态分布的随机数据,并模拟分组数据。以下代码生成3组(A、B、C)随机数据,每组包含10个样本:

r 复制代码
set.seed(123)  # 确保可重复性
group_A <- rnorm(10, mean=50, sd=5)
group_B <- rnorm(10, mean=60, sd=8)
group_C <- rnorm(10, mean=45, sd=6)
data <- data.frame(
  Group = rep(c("A", "B", "C"), each=10),
  Value = c(group_A, group_B, group_C)
)

计算均值和标准偏差

使用dplyr包汇总数据,计算每组均值和标准偏差:

r 复制代码
library(dplyr)
summary_data <- data %>%
  group_by(Group) %>%
  summarise(
    Mean = mean(Value),
    SD = sd(Value)
  )

绘制柱状图与误差棒

使用ggplot2绘制柱状图,并通过geom_errorbar添加标准偏差误差棒:

r 复制代码
library(ggplot2)
ggplot(summary_data, aes(x=Group, y=Mean, fill=Group)) +
  geom_bar(stat="identity", width=0.5) +
  geom_errorbar(aes(ymin=Mean-SD, ymax=Mean+SD), width=0.2) +
  labs(title="误差分析柱状图", y="均值 ± 标准偏差") +
  theme_minimal()

自定义图形样式(可选)

调整颜色、标题和坐标轴:

r 复制代码
ggplot(summary_data, aes(x=Group, y=Mean, fill=Group)) +
  geom_bar(stat="identity", width=0.5, color="black") +
  geom_errorbar(aes(ymin=Mean-SD, ymax=Mean+SD), width=0.2, linewidth=0.7) +
  scale_fill_brewer(palette="Set2") +
  labs(title="误差分析柱状图", x="分组", y="测量值") +
  theme_classic()

输出图形

执行代码后,图形将显示在R的绘图窗口。如需保存为文件,使用ggsave()

r 复制代码
ggsave("error_bar_plot.png", width=6, height=4, dpi=300)

安装patchwork包 在R或RStudio中执行以下命令从CRAN安装:

r 复制代码
install.packages("patchwork")
 

双排显示

r 复制代码
library(ggplot2)
library(patchwork)
 
 ``````r 
p1 <- ggplot(summary_data, aes(x=Group, y=Mean, fill=Group)) + 
  geom_bar(stat="identity", width=0.5) + 
  geom_errorbar(aes(ymin=Mean-SD, ymax=Mean+SD), width=0.2) + 
  labs(title="误差分析柱状图", y="均值 ± 标准偏差") + 
  theme_minimal()

p2 <- ggplot(summary_data, aes(x=Group, y=Mean, fill=Group)) + 
  geom_bar(stat="identity", width=0.5, color="black") + 
  geom_errorbar(aes(ymin=Mean-SD, ymax=Mean+SD), width=0.2, linewidth=0.7) + 
  scale_fill_brewer(palette="Set2") + 
  labs(title="误差分析柱状图", x="分组", y="测量值") + 
  theme_classic()
 

左右排列显示结果

r 复制代码
combined_horizontal <- p1 + p2 + plot_layout(ncol = 2)
print(combined_horizontal)
r 复制代码
combined_vertical <- p1 / p2 + plot_layout(nrow = 2)
print(combined_vertical)
 
r 复制代码
combined_horizontal + 
  plot_annotation(title = "双图对比分析") + 
  plot_layout(guides = "collect") & 
  theme(plot.margin = unit(c(1,1,1,1), "cm"))
 


总结

柱状图是所有图像的基础,尝试建立不同的柱状图,在基本的格式基础上更改参数,多练习多尝试,加油吧小伙伴们。

相关推荐
zzywxc78711 分钟前
详细探讨AI在金融、医疗、教育和制造业四大领域的具体落地案例,并通过代码、流程图、Prompt示例和图表等方式展示这些应用的实际效果。
开发语言·javascript·人工智能·深度学习·金融·prompt·流程图
浮灯Foden24 分钟前
算法-每日一题(DAY13)两数之和
开发语言·数据结构·c++·算法·leetcode·面试·散列表
淡海水37 分钟前
【原理】Struct 和 Class 辨析
开发语言·c++·c#·struct·class
Q_Q196328847542 分钟前
python的电影院座位管理可视化数据分析系统
开发语言·spring boot·python·django·flask·node.js·php
杜子不疼.1 小时前
《Python学习之第三方库:开启无限可能》
开发语言·python·学习
青川入梦1 小时前
MyBatis极速通关上篇:Spring Boot环境搭建+用户管理实战
java·开发语言·mybatis
CC__xy2 小时前
04 类型别名type + 检测数据类型(typeof+instanceof) + 空安全+剩余和展开(运算符 ...)简单类型和复杂类型 + 模块化
开发语言·javascript·harmonyos·鸿蒙
萤丰信息2 小时前
技术赋能安全:智慧工地构建城市建设新防线
java·大数据·开发语言·人工智能·智慧城市·智慧工地
Pocker_Spades_A2 小时前
飞算JavaAI家庭记账系统:从收支记录到财务分析的全流程管理方案
java·开发语言
CHEN5_024 小时前
【Java基础常见辨析】重载与重写,深拷贝与浅拷贝,抽象类与普通类
java·开发语言