当前位置: 首页 > java >正文

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

生成随机数据

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

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包汇总数据,计算每组均值和标准偏差:

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

绘制柱状图与误差棒

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

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()

在这里插入图片描述

自定义图形样式(可选)

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

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()

ggsave("error_bar_plot.png", width=6, height=4, dpi=300)

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

install.packages("patchwork")

双排显示

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()

左右排列显示结果

combined_horizontal <- p1 + p2 + plot_layout(ncol = 2)
print(combined_horizontal)

在这里插入图片描述

combined_vertical <- p1 / p2 + plot_layout(nrow = 2)
print(combined_vertical)

在这里插入图片描述

combined_horizontal + plot_annotation(title = "双图对比分析") + plot_layout(guides = "collect") & theme(plot.margin = unit(c(1,1,1,1), "cm"))

在这里插入图片描述
在这里插入图片描述

总结

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

http://www.xdnf.cn/news/8559.html

相关文章:

  • A-Teacher: Asymmetric Network for 3D Semi-Supervised Object Detection
  • 传统医疗系统文档集中标准化存储和AI智能化更新路径分析
  • 曲面造型画图技能(1)标准曲面创建与基本操作
  • 嵌入大模型与LLM技术全面解析与实战指南
  • 前端表单中 `readOnly` 和 `disabled` 属性的区别
  • 由数据范围反推目标算法
  • 云计算,大数据,人工智能
  • 三种常见脉冲神经网络编码方式解读
  • << C程序设计语言第2版 >> 练习1-14 打印输入中各个字符出现频度的直方图
  • redis哨兵服务
  • ES 面试题系列「三」
  • ABP VNext + Orleans:Actor 模型下的分布式状态管理最佳实践
  • 如何利用夜莺监控对Redis Cluster集群状态及集群中节点进行监控及告警?
  • 怎样把B站的视频保存到本地
  • python学习打卡day35
  • 操作系统与底层安全
  • 跨链风云:打破区块链孤岛,实现价值自由流转
  • SDC命令详解:使用set_logic_dc命令进行约束
  • 【软考向】Chapter 2 程序设计语言基础知识
  • Vanna.AI:解锁连表查询的新境界
  • uni-app学习笔记十--vu3综合练习
  • 前端实战:用 JavaScript 模拟文件选择器,同步实现图片预览与 Base64 转换
  • Python序列化与反序列化
  • 人工智能在医疗影像诊断上的最新成果:更精准地识别疾病
  • python:机器学习概述
  • csp备考Day1|string和vector
  • BSDIFF算法详解
  • 2025陕西ICPC邀请赛题解(部分)
  • JVM学习(五)--执行引擎
  • 内容中台的数字化管理核心是什么?