R语言plot_glmnet绘图:修改标签字号与次坐标轴设置方法
plot_glmnet绘图:标签字体调整与次坐标轴设置
一、修改各类标签的字体大小
你当前代码里用的cex.lab(坐标轴标签)、cex.axis(刻度文字)、cex.main(标题)都是正确的用法,直接调整数值就能缩放对应字体大小。要是想单独调整图里标注的变量名(也就是label=5显示的那几个)的字体,加个cex.labels参数就行,示例代码如下:
library(glmnet) library(plotmo) windowsFonts(A = windowsFont("Times New Roman")) plot_glmnet(lasso.mod, main ="Lasso", label=5, xlab= "Log(λ)", ylab="Coefficients", cex.lab = 1.25, # 坐标轴标签大小 cex.axis = 1.25, # 刻度文字大小 cex.main = 1.25, # 标题大小 cex.labels = 1.1, # 变量标签大小 family="A")
二、给自动生成的次坐标轴加标签并调整
plot_glmnet默认在顶部生成的次坐标轴(显示当前λ对应的非零系数个数)没有标签,需要在绘图完成后手动添加和调整,步骤如下:
- 先绘制基础图形:
# 先执行绘图,保留默认的次坐标轴刻度 plot_glmnet(lasso.mod, main ="Lasso", label=5, xlab= "Log(λ)", ylab="Coefficients", cex.lab = 1.25, cex.axis = 1.25, cex.main = 1.25, family="A")
- 添加次坐标轴标签并调整样式:
# 在顶部添加标签,line参数控制标签与坐标轴的距离 mtext("非零系数个数", side = 3, line = 2, cex = 1.25, family = "A") # 如果觉得原有刻度字体大小不合适,重新绘制次坐标轴刻度 axis(3, cex.axis = 1.25, family = "A")
如果需要更精细的控制(比如自定义刻度位置),可以先用par("usr")获取当前坐标轴的范围,再自行设置刻度点。
内容的提问来源于stack exchange,提问作者Elena Iakimova
相关产品推荐
相关产品推荐

