You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整ggplot多变量箱线图x轴Umur按数值从小到大顺序排列

问题原因

你当前使用的x轴变量Umur属于无序因子/字符类型,ggplot2默认会按照字符字典序排列轴标签,因此不会按照年龄的数值大小从小到大排序。

修正方案

在绘图前先将Umur转换为按数值大小排序的有序因子即可,修改后的完整代码如下:

ton.ame.1 %>% 
  # 新增:将Umur转为按数值从小到大排序的有序因子
  dplyr::mutate(Umur = forcats::fct_reorder(Umur, as.numeric(as.character(Umur)))) %>%
  ggplot(mapping = aes(x = Umur, y = sum_by_group, color = Tahun)) + 
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", shape = 18, aes(group = Tahun), 
               position = position_dodge(0.85), 
               color = "black", size = 2)+
  ggtitle("2015-2019年ABCDEFGH种植园棕榈鲜果串(TBS)生产率 [单位: Ton/Ha]") +                     
  theme_bw()+
  theme(plot.title = element_text(color = "black", size = 12, face = "bold", hjust = 0.5),
        plot.subtitle = element_text(color = "black", size = 12, face = "bold", hjust = 0.5),
        legend.position = "top") +
  xlab("种植树龄") +
  ylab("鲜果串产量 [ Ton/Ha ]")

补充说明

  • 代码中同时将原已弃用的fun.y参数替换为新版ggplot2推荐的fun参数,避免运行时抛出警告
  • 如果你确认Umur本身是数值类型,仅需要将其作为离散变量分组,可以直接将aes(x = Umur)修改为aes(x = factor(Umur)),无需额外调整排序逻辑

内容的提问来源于stack exchange,提问作者Andri Suheri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:09:03