R语言同图绘制不同行数数据集的密度图报错如何解决
报错原因与修复方案
核心报错原因
- 你定义的第一个数据集变量名为
my_data_1,但在绘图代码中调用时误写为my_data1,缺失了名称中的下划线,导致R无法匹配x轴美学映射的变量长度,触发报错。
修复方案1:直接修正变量名引用
直接修改代码中的数据集名称即可正常运行:
library(ggplot2) ggplot() + geom_density(data = my_data_1, aes(x = height), color = 'green') + geom_density(data = my_data_2, aes(x = prior_height), color = 'red') + labs(x = "身高", y = "密度")
修复方案2:长格式写法(推荐,支持自动生成图例)
将两个数据集的身高字段合并为统一的长表结构,绘图逻辑更清晰,也方便后续调整样式:
library(ggplot2) library(dplyr) # 合并两个数据集的身高数据,添加分组标识 plot_df <- bind_rows( my_data_1 %>% select(height) %>% rename(height_value = height) %>% mutate(data_source = "实测样本"), my_data_2 %>% select(prior_height) %>% rename(height_value = prior_height) %>% mutate(data_source = "先验分布") ) # 统一绘图 ggplot(plot_df, aes(x = height_value, color = data_source)) + geom_density(linewidth = 1) + labs(x = "身高", y = "密度", color = "数据来源")
内容的提问来源于stack exchange,提问作者stats_noob
相关产品推荐
相关产品推荐

