coef <- coef(fit) nz_idx <- which(coef != 0) nz_snps <- nz_idx - 1 df <- data.frame(lambda = rep(lam, length(coef)), coef = coef, SNP = row.names(coef)) ggplot(df, aes(x = SNP, y = coef, fill = abs(coef) > 0.1)) + geom_col() + scale_fill_manual(values = c("lightgray", "red")) + geom_hline(yintercept = 0, linetype = "dashed", color = "black") + geom_vline(xintercept = which(df$lambda == lam), linetype = "dashed", color = "black") + coord_flip() + labs(x = "", y = "Coefficient", title = "Marginal Model") + theme_bw() + theme(plot.title = element_text(hjust = 0.5), axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1), legend.position = "none")
时间: 2024-03-28 16:40:55 浏览: 62
subroutine fric_ABAQUS_fric_fric_coef
5星 · 资源好评率100%
这段代码用于绘制岭回归模型中SNP的回归系数条形图。首先,使用`coef()`函数获取模型的回归系数,然后使用`which()`函数获取回归系数不为0的SNP的索引。接下来,将索引减1得到SNP的编号,然后创建一个数据框`df`,其中包括lambda、coef和SNP三列,分别表示岭回归的惩罚参数、回归系数和SNP编号。接着,使用`ggplot()`函数创建条形图,其中`x`表示SNP,`y`表示回归系数,`fill`表示系数的绝对值是否大于0.1。使用`scale_fill_manual()`函数设置填充颜色,使用`geom_hline()`函数添加水平虚线表示回归系数为0的位置,使用`geom_vline()`函数添加垂直虚线表示当前的惩罚参数lambda。最后,使用`coord_flip()`函数将x轴和y轴交换,使用`labs()`函数添加标题和标签,使用`theme_bw()`函数设置白色背景,使用`theme()`函数修改图形元素的样式。
阅读全文