簡體   English   中英

如何僅使用barplot功能調整R中條形圖的y軸

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM