大家好,感謝您的考慮,在ggplot
的目標是提供在那裏有很多很多的x軸標籤的情況下更多的空間。注意我不在乎標籤本身是否在圖上可見(我已經在下面的代碼中將它們排除在外)。我想要改變的是,當一個典型的geom_point圖中有〜1000個x軸標籤和1000個數據點時,與這些第一個和最後幾個x軸標籤相關的左邊和右邊的點被壓制繪圖區域的邊緣。我想填補一些空間,所以這些點不會被擠壓。
我不知道是否有改變的情況下xi
和xii
是不是數字,而是,字符串的scale-x-discrete(limits=c(xi,xii))
type命令的方式。一個例子,使這個(希望)明確:
在這第一種情況下,灰點陰影圖的最右點和邊緣之間的間距是相當大的,這樣的點不會正確地流血靠在繪圖區域的邊緣。我想要這種效果,在最後一點和劇情邊緣之間有一些空間。
library(ggplot2)
set.seed(10)
lessVals = sample(1:100000, 10, replace = T)
lessIDs = as.character(sample(1:100000, 10, replace = T))
df.less <- data.frame(lessIDs, lessVals)
df.less$lessIDs <- as.character(df.less$lessIDs)
lessDat <- ggplot(df.less)
lessDat + geom_point(aes(lessIDs, lessVals)) + theme(axis.text.x =
element_blank())
但是,在以下情況下有成千上萬的x軸點,而可視化的身份本身是無關的標籤,我想避免的左邊和最右邊的點被壓扁了到繪圖區域的邊緣。注意我並不在意圖中的點被壓縮在一起 - 這是不可避免的,而過度繪圖可以通過一個alpha參數或其他東西來解決。我想要解決的是讓繪圖邊緣上的點(最好是左邊和右邊)在水平面之間有一些緩衝區,其中左側是y軸刻度,右側是此刻沒有什麼(但可能是,例如,一個傳奇)。
manyIDs = as.character(sample(1:100000, 1000, replace = T))
manyVals = sample(1:100000, 1000, replace = T)
df.many <- data.frame(manyIDs, manyVals)
df.many$manyIDs <- as.character(df.many$manyIDs)
manyDat <- ggplot(df.many)
manyDat + geom_point(aes(manyIDs, manyVals)) + theme(axis.text.x =
element_blank())
我很想知道究竟可以做些什麼來爲這些點的水平邊緣提供一點緩衝。
感謝您分享您的天才。
非常感謝您@bdemarest –