使用plot函数绘制DR01_PV至DR06_PV为x轴、D1为y轴散点图咨询
R plot函数生成散点图实现代码
基于你已预处理得到的PV数据集,以下提供两种符合需求的实现方案:
- 方案1:将6个PV列的散点统一绘制在同一张画布,方便对比分布差异
- 方案2:每个PV列单独生成子图,方便单独观察对应相关关系
方案1:单画布集成所有散点
# 提取DR01_PV到DR06_PV的列名 pv_cols <- paste0("DR0", 1:6, "_PV") # 为不同PV列设置区分色 col_vec <- rainbow(length(pv_cols)) # 初始化画布并绘制第一个PV列的散点 plot( x = PV[[pv_cols[1]]], y = PV$D1, xlim = range(PV[, pv_cols]), # 统一X轴范围适配所有PV取值 col = col_vec[1], pch = 16, # 实心圆点样式 xlab = "PV取值", ylab = "D1取值", main = "各PV列与D1的散点关系" ) # 循环添加剩余5个PV列的散点 for (i in 2:length(pv_cols)) { points( x = PV[[pv_cols[i]]], y = PV$D1, col = col_vec[i], pch = 16 ) } # 添加图例区分不同PV列 legend("topleft", legend = pv_cols, col = col_vec, pch = 16)
方案2:分张子图
pv_cols <- paste0("DR0", 1:6, "_PV") # 设置画布为2行3列布局,同时展示6张子图,调整边距避免标签重叠 par(mfrow = c(2, 3), mar = c(4, 4, 2, 1)) # 循环绘制每个PV列对应的散点图 for (col_name in pv_cols) { plot( x = PV[[col_name]], y = PV$D1, col = "steelblue", pch = 16, xlab = col_name, ylab = "D1取值", main = paste0(col_name, " vs D1") ) } # 绘图完成后重置画布默认布局 par(mfrow = c(1, 1))
内容的提问来源于stack exchange,提问作者Antonio
相关产品推荐
相关产品推荐

