如何在ggplot2 R圖中設置軸的極限?

我繪製如下內容: git

library(ggplot2)    

carrots <- data.frame(length = rnorm(500000, 10000, 10000))
cukes <- data.frame(length = rnorm(50000, 10000, 20000))
carrots$veg <- 'carrot'
cukes$veg <- 'cuke'
vegLengths <- rbind(carrots, cukes)

ggplot(vegLengths, aes(length, fill = veg)) +
 geom_density(alpha = 0.2)

如今說我只想繪製x=-50005000之間的區域,而不是整個範圍。 github

我怎樣才能作到這一點? spa


#1樓

基本上你有兩個選擇 code

scale_x_continuous(limits = c(-5000, 5000))

要麼 orm

coord_cartesian(xlim = c(-5000, 5000))

第一個刪除給定範圍以外的全部數據點,第二個僅調整可見區域。 在大多數狀況下,您不會看到差別,可是若是對數據進行擬合,則可能會更改擬合值。 圖片

您還能夠使用簡寫功能xlim (或ylim ),就像第一個選項同樣,它能夠刪除給定範圍以外的數據點: ip

+ xlim(-5000, 5000)

有關更多信息,請查看coord_cartesian的描述。 get

ggplot2RStudio ggplot2在視覺上使其很是清晰。 這是該速查表的一小部分: it

在此處輸入圖片說明

CC BY下分發io


#2樓

快速說明:若是您還使用coord_flip()來翻轉x和y軸,則將沒法使用coord_cartesian()來設置範圍限制,由於這兩個功能是互斥的(請參見此處 )。

幸運的是,這很容易解決。 在coord_flip()設置您的限制, coord_flip()所示:

p + coord_flip(ylim = c(3,5), xlim = c(100, 400))

這只是改變可見範圍(即不刪除數據點)。

相關文章
相關標籤/搜索