R语言无分组箱线图间距调整:减小箱线图与y轴type组垂直间距
调整翻转后箱线图与y轴(Type组别)的垂直间距
嘿,我懂你想拉近箱线图和左侧y轴(也就是你原来的type组别)之间距离的需求,其实用ggplot的几个参数就能轻松搞定,给你具体说下:
方法1:调整离散轴的expand参数(最推荐)
因为你用了coord_flip(),原来映射在x轴的离散变量type现在显示在y轴位置,但ggplot的scale设置还是基于你最初的aes映射——所以我们要调整scale_x_discrete的expand参数,它直接控制数据区域和对应轴的间距。
默认情况下,expand会给轴两端加上5%的空白间距,我们把这个比例缩小甚至去掉,就能让箱线图更靠近轴:
bp <- ggplot(data = data, aes(x=type, y=time.from.sunset)) bp + geom_boxplot(width = 0.4, fill = "white") + coord_flip() + scale_y_reverse(limits=c(60,-20), breaks = c(60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5, 0, -5, -10, -15, -20), labels = c(60, "", 50, "", 40, "", 30, "", 20, "", 10, "", "sunset", "", -10, "", -20)) + scale_x_discrete(expand = c(0, 0.1)) # 核心调整:第一个值是比例扩展,设为0去掉默认比例间距;第二个是固定小间距,避免完全贴轴
你可以根据实际效果调整0.1这个数值,越小箱线图就越靠近y轴。
方法2:调整轴标签的边距(适合微调标签位置)
如果你还想让type的文本标签更靠近轴,可以配合theme参数调整:
+ theme(axis.text.y = element_text(margin = margin(r = -3))) # r代表右边距,负数会让标签往左移动靠近轴
不过这个只是调整标签位置,不是箱线图和轴的间距,所以优先用方法1。
内容的提问来源于stack exchange,提问作者Jskeep
相关产品推荐
相关产品推荐

