使用 scale_x_discrete(limits=(...) 重新排序箱线图 (ggplot) 会导致警告消息:已删除包含缺失值的 103 行 (stat_boxplot)

Reordering boxplot (ggplot) with scale_x_discrete(limits=(...) results in Warning message: Removed 103 rows containing missing values (stat_boxplot)

可能是用户错误,但我终究找不到它。尝试使用“scale_x_discrete(limits=(...)”函数重新排列我正在使用 ggplot 制作的箱线图中的因素顺序。这样做会导致出现以下警告消息“警告消息:已删除 103 行包含缺失值(stat_boxplot”。和一个缺少一个分组的情节,它是箱线图。我很困惑,因为这对于其他因素几乎相同的情节来说效果很好,如果我不这样做,情节是完全正常的不要尝试重新排列并 运行 按原样。我可以告诉的基础数据框没有任何问题(例如,没有缺失值或 NA)。对这里可能出现的问题有什么想法吗?

谢谢!

预发箱线图示例:

maxn_topo_plot<- ggplot(wide.df2, aes(x=topo, y=sum_maxn)) + 
  geom_boxplot(show.legend = FALSE) + theme_pubclean(base_size = 20) +  xlab("Island Geomorpholgy") + ylab("Shark MaxN") + 
 theme(axis.text.x =  element_text(angle = 12))


maxn_topo_plot

有问题的代码:

maxn_topo_plot<- ggplot(wide.df2, aes(x=topo, y=sum_maxn)) + 
  geom_boxplot(show.legend = FALSE) + theme_pubclean(base_size = 20) +  xlab("Island Geomorpholgy") + ylab("Shark MaxN") + 
  scale_x_discrete(limits=c("open atoll","closed atoll","near atoll", "high barrier", "high rocky", "high fringing")) + 
  theme(axis.text.x =  element_text(angle = 12))


maxn_topo_plot

工作正常的代码:

max_isl_group<- ggplot(wide.df2, aes(x=isl_grp, y=sum_maxn)) + 
geom_boxplot(show.legend = FALSE) + theme_pubclean(base_size = 20) +  xlab("Island Group") + ylab("Shark MaxN") + 
 scale_x_discrete(limits=c("west tuamotu","east tuamotu","windward", "leeward", "marquesas", "australes")) + 
  theme(axis.text.x =  element_text(angle = 20))

max_isl_group 

我不知道你的代码到底发生了什么

但是,如果您希望通过其他方式对 x 轴重新排序而不需要此处显示此消息,则为:

maxn_topo_plot<- ggplot(wide.df2, aes(x= factor(topo,
                                          levels = c("open atoll",
                                                     "closed atoll",
                                                     "near atoll", 
                                                     "high barrier", 
                                                     "high rocky", 
                                                     "high fringing")), y=sum_maxn)) + 
  geom_boxplot(show.legend = FALSE)  +  
  xlab("Island Geomorpholgy") + 
  ylab("Shark MaxN") + 
  theme_pubclean(base_size = 20) +
  theme(axis.text.x =  element_text(angle = 12))

这是一个流氓 space 我的因素之一“高边缘”是根本问题。 办公桌上的刘海。时间花得很值。