为什么ggplot2 geom_boxplot无缘无故给出错误的订单结果?

时间:2019-05-30 20:31:04

标签: r ggplot2 boxplot

我一直在用ggplot2和Month Rainfall 1 45 1 12 1 14 2 65 2 45 2 78 3 10 3 35 3 92 . . . . . . 在一张图中绘制多个盒形图。数据如下所示。

ggplot(data=edit3)+geom_boxplot(aes(x=Month, y=Rainfall))

因此,通过使用箱线图,我想查看每个组(1,2,3 ...)的降雨值的箱线图。我得到的结果很奇怪,订单看起来很混乱。有帮助吗?

dput(head(edit3[,c("Month","Rainfall")],9))

注意:edit3是具有降雨和月份值的数据框。

enter image description here

structure(list(Month = c("1", "1", "1", "1", "1", "1", "1", "1", 
"2"), Rainfall = c(NA, 135.6, 34.2, 39.4, 134.6, 234.6, 69.6, 
92.8, NA)), row.names = c(NA, -9L), class = c("tbl_df", "tbl", 
"data.frame"))
$(document).on('click', 'div#top_nav ul li', function {
  $(this).child().addclass('new-class')
});

1 个答案:

答案 0 :(得分:1)

由于您的月份就像因素一样,您只需要重新排列这些因素即可。在这里,我为此使用了forcats包。

library(dplyr)
library(forcats)

edit31_1 <- edit3 %>% 
  dplyr::mutate(Month = forcats::fct_inorder(Month))

ggplot2::ggplot(edit31_1) +
  geom_boxplot(aes(x = Month, y = Rainfall))

enter image description here


  • 使用的虚拟数据:
library(ggplot2)

set.seed(1)
edit3 <- data.frame(Month = as.factor(rep(paste(seq(1, 12, 1)), 3)),
                    Rainfall = rnorm(n = 36, mean = 60, sd = 30))

ggplot2::ggplot(edit3) +
  geom_boxplot(aes(x = Month, y = Rainfall))

enter image description here