R语言:同一观测中两个连续变量的直方图绘制需求
双变量频次对比直方图绘制方案
针对你的数字X光分析项目需求,这里提供用ggplot2绘制双变量直方图的具体实现步骤:
1. 数据格式转换
你的原始数据是宽格式(result1和result2为独立列),而分组直方图需要长格式数据(将两个结果列合并为一列,新增变量标识来源),用tidyr::pivot_longer即可完成转换。
2. 完整代码示例
# 加载必要包 library(tidyverse) # 模拟你的数据结构(替换为实际数据框) xray_data <- tibble( n = 1:2, result1 = c(24.3, 45.7), result2 = c(15.2, 89.7) ) # 转换为长格式 long_data <- xray_data %>% pivot_longer(cols = starts_with("result"), names_to = "variable", values_to = "value") # 绘制分组直方图 ggplot(long_data, aes(x = value, fill = variable)) + geom_histogram(binwidth = 5, alpha = 0.7, position = "dodge") + # binwidth可按需调整 scale_x_continuous(limits = c(0, 100), breaks = seq(0, 100, 10)) + # 固定X轴0-100范围 scale_fill_manual(values = c("result1" = "#2E86AB", "result2" = "#F24C4C")) + # 自定义区分颜色 labs(x = "输出结果", y = "频数", fill = "变量") + theme_minimal()
关键参数说明
binwidth: 控制直方图组距,可根据数据分布调整(比如设为2或10)alpha: 设置柱子透明度,避免两组重叠时遮挡position = "dodge": 让两组柱子并列显示(若需叠加显示可改为position = "stack")scale_x_continuous: 强制X轴范围匹配变量0-100的取值区间
内容的提问来源于stack exchange,提问作者jose_bampi
相关产品推荐
相关产品推荐

