簡體   English   中英

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

[英]How to set limits for axes in ggplot2 R plots?

我繪制了以下內容:

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之間的區域,而不是整個范圍。

我怎樣才能做到這一點?

基本上你有兩個選擇

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

或者

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

其中第一個刪除給定范圍之外的所有數據點,第二個僅調整可見區域。 在大多數情況下,您不會看到差異,但如果您對數據進行任何擬合,則可能會更改擬合值。

您還可以使用速記函數xlim (或ylim ),它像第一個選項一樣刪除給定范圍之外的數據點:

+ xlim(-5000, 5000)

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

ggplot2RStudio ggplot2在視覺上非常清楚。 這是該備忘單的一小部分:

在此處輸入圖片說明

CC BY下分發

快速說明:如果您還使用coord_flip()翻轉 x 軸和 y 軸,您將無法使用coord_cartesian()設置范圍限制,因為這兩個函數是互斥的(請參閱此處)。

幸運的是,這是一個簡單的修復; coord_flip()設置您的限制, coord_flip()所示:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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