如何为R语言中tapply生成的每个直方图添加对应运动项目标题
你原来的代码直接将分组后的身高向量传给hist函数,函数会使用默认的主标题格式,无法匹配对应运动项目,你可以通过以下两种方式实现每个直方图显示对应项目名作为标题:
方法1:for循环遍历(可读性更高)
library(sn) data(ais) attach(ais) par(mfrow = c(3, 4)) # 遍历所有运动项目分类 for (sport_name in levels(sport)) { # 筛选对应项目的身高数据,指定主标题为当前项目名 hist(Ht[sport == sport_name], main = sport_name, xlab = "身高(cm)") }
方法2:mapply批量处理(符合R函数式编程习惯)
library(sn) data(ais) attach(ais) par(mfrow = c(3, 4)) # 同时传入分组后的身高数据和对应项目名,批量绘制直方图 mapply( FUN = function(height_data, name) hist(height_data, main = name, xlab = "身高(cm)"), split(Ht, sport), names(split(Ht, sport)) )
两种实现的核心逻辑都是在绘制单组直方图时,将对应运动项目的名称传入hist函数的main参数,即可完成标题设置。
内容的提问来源于stack exchange,提问作者Rojer
相关产品推荐
相关产品推荐

