我有一個數據集,其中包含來自每個火車站在每個火車站有4列火車,6個火車站和遲到的火車運行的100次模擬的數據。我的數據看起來是這樣的:R. GGplot2,帶自定義分位數的geom_boxplot
MyData <- data.frame(
Simulation = rep(sort(rep(1:100, 6)), 4),
Train_number = sort(rep(c(100, 102, 104, 106), 100*6)),
Stations = rep(c("ST_1", "ST_2", "ST_3", "ST_4", "ST_5", "ST_6"), 100*4),
Arrival_Lateness = c(rep(0, 60), rexp(40, 1), rep(0, 60), rexp(40, 2), rep(0, 60), rexp(40, 3), rep(0, 60), rexp(40, 5))
)
現在,我需要創建一個箱線圖看起來與此類似:
library(ggplot2)
m <- ggplot(MyData , aes(y = Arrival_Lateness, x = factor(Stations)))
m + geom_boxplot(aes(fill = factor(Train_number)))
https://imagizer.imageshack.us/v2/1144x436q90/19/bnrx.png
但是,這並不爲我的工作數據因爲geom_boxplot使用四分位間距範圍的鬍鬚。我想爲盒子和鬍鬚定義我自己的分位數。我發現這個帖子從Stackoverflow部分解決了我的問題Changing whisker definition in geom_boxplot。但是,當我應用的解決方案(我通過插入到AES功能填補=係數(Train_number)修改了代碼),我得到這個:
f <- function(x) {
r <- quantile(x, probs = c(0.05, 0.25, 0.5, 0.75, 0.95))
names(r) <- c("ymin", "lower", "middle", "upper", "ymax")
r
}
ggplot(MyData, aes(factor(Stations), Arrival_Lateness, fill = factor(Train_number))) + stat_summary(fun.data = f, geom="boxplot")
https://imagizer.imageshack.us/v2/1144x436q90/827/m9y0.png
這顯然不是我想要的。我需要像第一張圖像那樣爲每個列車並排放置箱子,而不是像第二張箱子那樣重疊。我該怎麼做呢?
我會感謝任何幫助!
在此先感謝!
這太棒了!非常感謝! – Ratamahatta