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

如何在ggplot中设置x轴按Visit 1-12的数据集顺序排列?

解决ggplot柱状图x轴Visit顺序问题

你的问题出在Visit列默认是字符类型,R会按字典序排序(比如Visit 10会排在Visit 2前面),要强制指定顺序,有两种简单方法:

方法一:提前将Visit转为有序因子

先修改数据集的Visit列类型,指定从Visit 1到Visit 12的顺序,再绘图:

# 转换Visit为有序因子
data_new$Visit <- factor(data_new$Visit, 
                         levels = paste0("Visit ", 1:12),
                         ordered = TRUE)

# 绘制图表
ggplot(data = data_new %>% gather(values, Score_dose, -Visit), 
       aes(x = Visit, y = Score_dose, fill = values)) + 
  geom_bar(stat = 'identity', position = 'dodge') +
  theme_bw()

方法二:在ggplot中直接指定x轴顺序

不用修改原数据集,通过scale_x_discrete参数强制设置x轴标签顺序:

ggplot(data = data_new %>% gather(values, Score_dose, -Visit), 
       aes(x = Visit, y = Score_dose, fill = values)) + 
  geom_bar(stat = 'identity', position = 'dodge') +
  scale_x_discrete(levels = paste0("Visit ", 1:12)) + # 自定义x轴顺序
  theme_bw()

注意事项

如果你的Visit标签格式不是Visit 数字(比如是Visit1、Visit2这种无空格格式),只需要把paste0("Visit ", 1:12)改成paste0("Visit", 1:12)即可,匹配你的实际标签格式。

内容的提问来源于stack exchange,提问作者Afia A

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:20:28