如何在R的ggopenair polar_plot中设置最大半径限制并自定义外观
解决ggopenair polar_plot的两个自定义问题
1. 去除极坐标图最外圈
极坐标图的最外圈默认由panel.border绘制,你当前的theme设置未覆盖该元素,只需在theme()中添加以下配置:
panel.border = element_blank()
如果仍有残留的外圈空间,可进一步覆盖默认的极坐标扩展设置,在代码末尾添加:
+ coord_polar(expand = FALSE)
(注:expand = FALSE会让绘图区域紧贴最大刻度,避免额外的外圈空白)
2. 修改色条标题显示方向
通过scale_opencolors_c的guide参数,用guide_colorbar控制标题的角度和对齐方式。比如要将垂直的标题改为水平显示,修改你的颜色尺度代码:
ggopenair::scale_opencolors_c( limits=c(0, 400), scheme = "turbo", guide = guide_colorbar( title.theme = element_text(angle = 0, hjust = 0.5, family = "Times new roman") ) )
angle = 0:设置标题水平显示(默认是90度垂直)hjust = 0.5:让标题在色条上方居中对齐- 保留
family参数确保字体与整体一致
修改后的完整代码
plt <- ggopenair::polar_plot(mydata, pollutant = "nox") plt + ggopenair::theme_polar(base_size = 13, base_family = "Times new roman") + theme( panel.background = element_blank(), panel.border = element_blank(), # 新增:去除最外圈边框 panel.grid = element_blank(), plot.background = element_rect(fill = "white"), axis.line = element_blank(), # 合并x/y轴线条设置,更简洁 axis.text = element_text(color = "black"), legend.background = element_blank(), legend.text = element_text(color = "black"), legend.title = element_text(color = "black"), legend.title.align = 0, panel.ontop = TRUE, text = element_text(family = "Times new roman") ) + scale_y_limitval(marker_values = 24, marker_linetypes = 1, limits=c(0,24), breaks = seq(0, 24,4)) + ggopenair::scale_opencolors_c( limits=c(0, 400), scheme = "turbo", guide = guide_colorbar( # 新增:控制色条标题方向 title.theme = element_text(angle = 0, hjust = 0.5, family = "Times new roman") ) ) + ggopenair::annotate_polar_axis( seq(0, 24,4), direction = "NW", labels = seq(0, 24,4), drop=TRUE ) + coord_polar(expand = FALSE) # 可选:进一步收紧绘图区域
内容的提问来源于stack exchange,提问作者Beryl
相关产品推荐
相关产品推荐

