R语言ggplot2绘图指定ylab未生效,其余labs标签设置正常
问题原因
核心问题是labs()的参数名写错了:
ggplot2的labs()函数里,设置x、y轴标签的参数名是x和y,xlab()、ylab()是单独的快捷函数,不能直接当参数名写到labs()里面。你代码里写的xlab = 'pO2'、ylab = '%hemeglobin bound'属于没被识别的无效参数,根本不会触发轴标签修改。
你觉得x轴标签正常生效只是巧合:x轴因为你提前调用xlim(0,150)初始化了连续标度,默认标签没有被其他逻辑覆盖,而y轴是geom_function()动态计算生成的,默认会显示和计算函数相关的自动标签,你传的ylab参数没被识别,自然不会显示你设置的文本。
修复方法
两种改法都能解决问题,选自己习惯的就行:
- 改法1:把labs里的参数名换成正确的
x、y
plot = plot + labs( title = 'figure 1', x = 'pO2', y = '%hemeglobin bound', subtitle = labels ) + theme(plot.subtitle = element_markdown())
- 改法2:把xlab、ylab从labs里拿出来,作为独立图层叠加
plot = plot + labs(title = 'figure 1', subtitle = labels) + xlab('pO2') + ylab('%hemeglobin bound') + theme(plot.subtitle = element_markdown())
改完重新运行代码,y轴就会正常显示%hemeglobin bound的标签了。
内容的提问来源于stack exchange,提问作者iRIs
相关产品推荐
相关产品推荐

