R语言使用循环绘制箱线图时如何将Y轴标签设置为对应列名
问题原因
现有代码存在两个问题:
- 循环语法错误:
data2[,c(5:36)]外侧缺少闭合右括号 - Y轴标签异常:循环直接遍历列的数值向量,变量
i仅存储对应列的数值,不携带列名信息,boxplot()默认取变量名i作为Y轴标签
修复方案
以下两种实现均可正常运行,且自动匹配对应列名作为Y轴标签:
方案1:遍历列名绘图(推荐,可读性更高)
# 提取待绘图的列名 plot_cols <- colnames(data2)[5:36] for (col in plot_cols) { boxplot(as.formula(paste(col, "~ cv")), data = data2, xlab = "CV", ylab = col) }
方案2:遍历列索引绘图
for (i in 5:36) { boxplot(data2[[i]] ~ data2$cv, xlab = "CV", ylab = colnames(data2)[i]) }
内容的提问来源于stack exchange,提问作者Cruzcontrol
相关产品推荐
相关产品推荐

