我繪製如下內容: 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=-5000
到5000
之間的區域,而不是整個範圍。 github
我怎樣才能作到這一點? spa
基本上你有兩個選擇 code
scale_x_continuous(limits = c(-5000, 5000))
要麼 orm
coord_cartesian(xlim = c(-5000, 5000))
第一個刪除給定範圍以外的全部數據點,第二個僅調整可見區域。 在大多數狀況下,您不會看到差別,可是若是對數據進行擬合,則可能會更改擬合值。 圖片
您還能夠使用簡寫功能xlim
(或ylim
),就像第一個選項同樣,它能夠刪除給定範圍以外的數據點: ip
+ xlim(-5000, 5000)
有關更多信息,請查看coord_cartesian
的描述。 get
ggplot2
的RStudio ggplot2
在視覺上使其很是清晰。 這是該速查表的一小部分: it
在CC BY下分發 。 io
快速說明:若是您還使用coord_flip()
來翻轉x和y軸,則將沒法使用coord_cartesian()
來設置範圍限制,由於這兩個功能是互斥的(請參見此處 )。
幸運的是,這很容易解決。 在coord_flip()
設置您的限制, coord_flip()
所示:
p + coord_flip(ylim = c(3,5), xlim = c(100, 400))
這只是改變可見範圍(即不刪除數據點)。