[英]How to adjust the y-axis of bar plot in R using only the barplot function
使用此示例:
x<-mtcars;
barplot(x$mpg);
您得到的图表包含很多(0-30)的条形图。
我的问题是如何调整它,以使y轴为(10-30),底部有裂口,表明截止值以下?
具体来说,我想在base R程序中仅使用barplot
函数而不使用barplot
函数来完成此操作 (与已经提供的建议不同)。 这可能吗?
不建议这样做。 切掉条形底部通常被认为是不好的做法。 但是,如果查看?barplot
,它具有一个ylim
参数,可以将其与xpd = FALSE
(打开“剪切”)结合使用以xpd = FALSE
的底部。
barplot(mtcars$mpg, ylim = c(10, 30), xpd = FALSE)
另请注意,此处应格外小心。 我遵循了您的问题,并使用0和30作为y边界,但最大mpg为33.9,因此我还剪切了值> 30的4个小节的顶部。
我知道在轴上进行“拆分”的唯一方法是使用plotrix
。 因此,基于
具体来说,我想在base 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
原样,这是非常脆弱的,手动调整了xbase
,因为它取决于数据范围。 您可以将barplot切换为xaxs = "i"
并设置xbase = 0
以提高可预测性,但是为什么不使用plotrix
,它已经为您完成了所有这些工作?
ggplot在评论中,您说过您不喜欢ggplot
的外观。 这很容易定制,例如:
library(ggplot2)
ggplot(x, aes(y = mpg, x = id)) +
geom_bar(stat = "identity", color = "black", fill = "gray80", width = 0.8) +
theme_classic()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.