R语言如何绘制正态随机样本的均值与标准差展示图
首先我们先将计算得到的均值、标准差和对应样本序号整合成独立的统计量数据框:
stat_df <- data.frame( 样本序号 = 1:10, 样本均值 = means, 样本标准差 = sd )
接下来提供两种常用的绘图方案:
方案1:基础R绘图(无需安装额外包,适合新手快速出图)
用实心点表示每个样本的均值,误差棒表示对应样本的标准差范围,逻辑直观:
# 先绘制均值点,设置y轴范围覆盖所有均值±标准差的区间 plot(stat_df$样本序号, stat_df$样本均值, ylim = range(c(stat_df$样本均值 - stat_df$样本标准差, stat_df$样本均值 + stat_df$样本标准差)), pch = 16, col = "darkblue", cex = 1.2, xlab = "模拟样本序号", ylab = "数值", main = "10个正态样本的均值与标准差") # 绘制标准差误差棒 arrows(stat_df$样本序号, stat_df$样本均值 - stat_df$样本标准差, stat_df$样本序号, stat_df$样本均值 + stat_df$样本标准差, angle = 90, code = 3, length = 0.1, col = "red") # 添加图例说明 legend("topright", legend = c("样本均值", "样本标准差范围"), col = c("darkblue", "red"), pch = c(16, NA), lty = c(NA, 1))
方案2:ggplot2绘图(可视化效果更美观,是R最常用的绘图包)
如果还没有安装依赖包,先运行install.packages(c("ggplot2","tidyr"))安装后再执行以下代码
我们可以把统计量转换为长表格式,直接分组绘制均值和标准差两个序列的变化趋势:
library(ggplot2) library(tidyr) # 宽表转长表,方便分组映射 stat_long <- pivot_longer(stat_df, cols = -样本序号, names_to = "统计量类型", values_to = "数值") # 绘制分色折线点图 ggplot(stat_long, aes(x = factor(样本序号), y = 数值, color = 统计量类型, group = 统计量类型)) + geom_point(size = 3) + geom_line(linewidth = 1) + labs(x = "模拟样本序号", y = "数值", title = "10个正态样本的均值与标准差") + theme_bw()
内容的提问来源于stack exchange,提问作者Elasso
相关产品推荐
相关产品推荐

