Base R中单独设置坐标轴标签颜色:将y轴首尾标签改为红色
解决Y轴首尾标签设为红色的问题
嘿,我明白你卡在哪了!你之前尝试的代码没生效,核心原因是axis()函数的col.axis参数不支持传入颜色向量——它只会把所有轴标签统一设置成同一个颜色,所以你传的c(2, rep(1, 3), 2)实际上只会取第一个颜色(红色)应用到所有标签,达不到你要的效果。
下面给你两种可行的解决方案:
方法一:分多次调用axis()
先绘制中间的黑色标签,再单独绘制首尾的红色标签,这样就能精准控制颜色:
# 绘制基础图形,先隐藏默认Y轴 plot(1:5, yaxt = "n") # 绘制中间3个黑色的Y轴标签 axis(2, at = 2:4, labels = paste0("case ", 2:4), col.axis = 1) # 单独绘制第一个红色标签 axis(2, at = 1, labels = "case 1", col.axis = 2) # 单独绘制最后一个红色标签 axis(2, at = 5, labels = "case 5", col.axis = 2)
方法二:用mtext()逐个添加标签
先画出Y轴的线条但不显示标签,再用mtext()逐个指定标签位置和颜色,灵活性更高:
# 绘制基础图形,隐藏默认Y轴 plot(1:5, yaxt = "n") # 先画出Y轴的刻度线条,不显示标签 axis(2, at = 1:5, labels = FALSE) # 逐个添加标签,设置对应颜色 mtext("case 1", side = 2, at = 1, col = 2, line = 1) mtext("case 2", side = 2, at = 2, col = 1, line = 1) mtext("case 3", side = 2, at = 3, col = 1, line = 1) mtext("case 4", side = 2, at = 4, col = 1, line = 1) mtext("case 5", side = 2, at = 5, col = 2, line = 1)
两种方法都能实现你要的效果,你可以根据自己的需求选择~
内容的提问来源于stack exchange,提问作者rnorouzian
相关产品推荐
相关产品推荐

