[英]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.