R语言从正态分布总体抽样绘制直方图的ggplot运行报错解决问询
问题解决说明
报错根源
你最初的代码报错是因为两个问题:
- 创建数据框时未给生成的正态分布序列指定列名,默认生成的列名是
rnorm.30..mean...0..sd...2.这类不规范的名称 aes()中直接传入了整个数据框对象sample2,ggplot无法识别要映射到x轴的变量,才会触发类型不匹配的报错。
修正后的完整实现
# 加载绘图包 library(ggplot2) # 生成30个正态分布观测值,存入数据框并明确指定列名 sample_data <- data.frame( value = rnorm(n = 30, mean = 0, sd = 2) ) # 绘制直方图 ggplot(sample_data, aes(x = value)) + geom_histogram( binwidth = 1, # 自定义组距,可根据需求调整,避免默认分组警告 fill = "cornflowerblue", color = "black", # 添加柱子边框提升辨识度 alpha = 0.8 ) + # 自定义图表标注 labs( title = "正态分布抽样结果直方图", subtitle = "总体参数:均值=0,标准差=2,样本量n=30", x = "观测值", y = "频数" ) + theme_minimal() # 可选:用简洁主题美化
极简写法(不需要额外存储变量的场景)
library(ggplot2) ggplot(data.frame(x = rnorm(30, 0, 2)), aes(x = x)) + geom_histogram(binwidth = 1, fill = "blue", color = "black")
内容的提问来源于stack exchange,提问作者Elasso
相关产品推荐
相关产品推荐

