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

R语言如何将表示星期的整数列值转换为名称以绘制有序条形图

更简洁的实现方案

共有两种可读性高、代码量更少的实现思路:

方案1:一步完成因子转换,同时指定标签和顺序

不需要先recode再fct_relevel,直接在将day_of_week转为因子时,同步设置数值对应的标签和排序规则,一步完成操作:

library(tidyverse)

Graph_major_days <- week_day2 %>%
  mutate(day_of_week = factor(day_of_week,
                              levels = 1:7,
                              labels = c("Sunday", "Monday", "Tuesday",
                                         "Wednesday", "Thursday", "Friday", "Saturday"))) %>%
  ggplot(aes(x = day_of_week, y = n)) +
  geom_bar(stat = "identity")

这种方法把数值转标签、设置顺序两个操作合并为一步,逻辑连贯,不需要额外引入forcats的函数。

方案2:仅在绘图层面指定x轴顺序

如果你不想修改原数据集的字段,也可以在recode之后,直接在ggplot的轴配置里指定顺序,不需要调整字段的因子水平:

library(tidyverse)

# 先完成数值转星期名称
week_day2$day_of_week <- recode(week_day2$day_of_week, 
   "1"="Sunday", "2"="Monday", "3"="Tuesday",
   "4"="Wednesday", "5"="Thursday", "6"="Friday", "7"="Saturday")

# 绘图时直接指定x轴排列顺序
Graph_major_days <- ggplot(week_day2, aes(x=day_of_week, y=n)) +
  geom_bar(stat="identity") +
  scale_x_discrete(limits = c("Sunday", "Monday", "Tuesday",
                              "Wednesday", "Thursday", "Friday", "Saturday"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:54:02