如何调整ggplot中axis.ticks与轴标签之间的间距?
解决ggplot中轴刻度与轴标签间距的问题
你之前的操作问题出在margin参数的方向设置错误:对于x轴标签(axis.text.x),要增大它和刻度的间距,应该调整顶部边距(t),而非底部边距(b)。因为element_text的margin是相对于文本自身位置定义的,x轴标签位于刻度下方,它的顶部就是靠近刻度的一侧,增大顶部边距会让标签向下移动,从而拉开与刻度的距离。
修改后的完整代码如下:
library(tidyverse) library(palmerpenguins) penguins %>% ggplot() + geom_point(aes(x=bill_length_mm,bill_depth_mm, fill=species), size=5, shape=21, color="white", alpha=0.7) + scale_fill_manual(values=c("#1B6CA8","#D78E00","#438A5E" )) + guides(fill=guide_legend(override.aes = list(alpha=1))) + theme_bw() + theme(text=element_text(size=12), axis.ticks.length = unit(0.25, "cm"), # 调整x轴标签与刻度的间距,t为顶部边距,单位可按需修改 axis.text.x = element_text(margin = margin(t = 0.2, unit = "cm")), # 如果需要调整y轴,用r参数(右侧边距,因为y轴标签在刻度左侧) axis.text.y = element_text(margin = margin(r = 0.2, unit = "cm"))) #> Warning: Removed 2 rows containing missing values (`geom_point()`).
关键说明:
axis.text.x对应x轴的刻度标签,margin(t = 数值)控制标签与上方刻度的间距axis.text.y对应y轴的刻度标签,margin(r = 数值)控制标签与右侧刻度的间距- 你之前用
b = 2是设置标签下方的空白,不会改变标签与刻度的距离,所以没有效果
内容的提问来源于stack exchange,提问作者LDT
相关产品推荐
相关产品推荐

