不建议这样做。切掉条的底部通常被认为是不好的做法。但是,如果您查看?barplot,它有一个ylim 参数,可以与xpd = FALSE(打开“剪裁”)结合使用以切断条形的底部。
barplot(mtcars$mpg, ylim = c(10, 30), xpd = FALSE)
还请注意,您应该在这里小心。我按照你的问题使用 0 和 30 作为 y 边界,但最大 mpg 是 33.9,所以我还剪裁了 4 个值 > 30 的条的顶部。
我知道在轴上进行“拆分”的唯一方法是使用plotrix。所以,基于
具体来说,我想在基础 R 程序中仅使用 barplot 函数而不是 plotrix 中的函数来执行此操作(与已经提供的建议不同)。这可能吗?
在我认为您的意思的意义上,答案是“不,这是不可能的”。 plotrix 确实做到了,而且它使用基本的 R 函数,所以你可以按照他们的做法去做,但你也可以使用 plotrix。
您可以在条形图的顶部绘制,也许一条水平虚线(如下所示)可以帮助表明您违反了条形图应该是普遍接受的规则:
abline(h = 10.2, col = "white", lwd = 2, lty = 2)
生成的图像如下:
编辑:您可以使用segments 来欺骗轴中断,如下所示:
barplot(mtcars$mpg, ylim = c(10, 30), xpd = FALSE)
xbase = -1.5
xoff = 0.5
ybase = c(10.3, 10.7)
yoff = 0
segments(x0 = xbase - xoff, x1 = xbase + xoff,
y0 = ybase-yoff, y1 = ybase + yoff, xpd = T, lwd = 2)
abline(h = mean(ybase), lwd = 2, lty = 2, col = "white")
按原样,这非常脆弱,xbase 是手动调整的,因为它取决于您的数据范围。您可以将条形图切换到xaxs = "i" 并设置xbase = 0 以获得更高的可预测性,但为什么不直接使用已经为您完成所有这些工作的plotrix?!
ggplot 在 cmets 中你说你不喜欢 ggplot 的样子。这很容易定制,例如:
library(ggplot2)
ggplot(x, aes(y = mpg, x = id)) +
geom_bar(stat = "identity", color = "black", fill = "gray80", width = 0.8) +
theme_classic()