如何在使用marrangeGrob时为次坐标轴标题设置颜色?
关于marrangeGrob设置次坐标轴标题颜色的问题
首先要明确:marrangeGrob本身是用来拼接多个绘图对象的工具,它不直接提供修改单个图表坐标轴标题样式的参数。你想要的那种axis.title.y.right颜色设置,本质是单个ggplot图表的主题配置,应该先在你的子图(也就是p1plot里的每个绘图对象)里完成设置,再用marrangeGrob拼接。
两种场景的处理方式
场景1:使用ggplot自带的次坐标轴
假设你的子图是ggplot创建的双轴图,直接在子图的theme()里定义主次Y轴标题的颜色即可,之后再用marrangeGrob拼接:# 先创建带双轴的子图并设置主题 p <- ggplot(data = your_data) + geom_line(aes(y = main_var)) + geom_line(aes(y = sec_var * scale_factor), color = "red") + scale_y_continuous( name = "主Y轴标题", sec.axis = sec_axis(~./scale_factor, name = "次Y轴标题") ) + theme( axis.title.y = element_text(color = "black", size=15), axis.title.y.right = element_text(color = "red", size=15) ) # 用marrangeGrob拼接多个子图(示例为重复两个p) marrangeGrob(list(p, p), nrow = 2, ncol = 2)场景2:用marrangeGrob的
right/left参数手动添加侧边文本
你代码里的right = yright、left = yleft是手动添加侧边文本的方式,这种情况下要设置颜色,需要在创建yright、yleft这些grob对象时就指定颜色,比如用textGrob():library(grid) # 创建带颜色的侧边文本grob yleft <- textGrob("左侧自定义文本", rot = 90, gp = gpar(col = "black", fontsize = 15)) yright <- textGrob("右侧自定义文本", rot = 270, gp = gpar(col = "red", fontsize = 15)) # 传入marrangeGrob marrangeGrob(p1plot, nrow = 2, ncol = 2, right = yright, left = yleft)
内容的提问来源于stack exchange,提问作者SFO
相关产品推荐
相关产品推荐

