我很抱歉,如果這是更多的SO而不是CV。ggplot2 - boxplot同時停留多個data.frames
我正在嘗試將第二個boxplot包含到已繪製值的平均值排序的現有boxplot中。當我從第二個data.frame(代表一個控制樣本到其他圖)中包含boxplot時,原始圖將失去其排序。
下面是一個例子:
x1 <- data.frame("V1" = runif(100, 0, 100), "siteno" = "X1") #mean = 50.3
x2 <- data.frame("V1" = runif(100, 200, 450), "siteno" = "X2") #mean = 322.4
x3 <- data.frame("V1" = runif(100, 50, 150), "siteno" = "X3") #mean = 97.8
xData <- rbind(x1,x2,x3)
xData$siteno <- with(xData, reorder(siteno, V1, mean))
zData <- data.frame("V1" = runif(300, 0, 450), "siteno" = "Z1") #mean = 224.2
#orders xData correctly
ggplot(xData, aes(x = siteno , y = V1)) +
stat_summary(fun.y=mean, colour="red", geom="point") +
geom_boxplot (aes(fill=siteno), alpha=.5, width=1, position = position_dodge(width = 1), outlier.colour = "dark gray", outlier.size = 1)
這將產生以下情節與變量x的平均正確排序:
如果我嘗試下面的代碼添加的控制數據, x變量的順序丟失:
x1 <- data.frame("V1" = runif(100, 0, 100), "siteno" = "X1") #mean = 50.3
x2 <- data.frame("V1" = runif(100, 200, 450), "siteno" = "X2") #mean = 322.4
x3 <- data.frame("V1" = runif(100, 50, 150), "siteno" = "X3") #mean = 97.8
xData <- rbind(x1,x2,x3)
xData$siteno <- with(xData, reorder(siteno, V1, mean))
zData <- data.frame("V1" = runif(300, 0, 450), "siteno" = "Z1") #mean = 224.2
#orders xData correctly
ggplot(xData, aes(x = siteno , y = V1)) +
stat_summary(fun.y=mean, colour="red", geom="point") +
geom_boxplot (aes(fill=siteno), alpha=.5, width=1, position = position_dodge(width = 1), outlier.colour = "dark gray", outlier.size = 1) +
geom_boxplot(data=zData, aes(x = siteno , y = V1))
這將產生以下情節沒有排序的變量x:
我圖的一點是要展示由他們的平均命令的測試值,然後有值箱圖關,爲視覺參考權的控制。我想可能有一個解決方案結合了xData和zData數據框;如果有一些建議,我願意嘗試。 謝謝你的時間。
爲什麼不ggplot名單上問? –