ggplot:按工作日排序

ggplot: Sort by weekday

谁能告诉我如何更改工作日的顺序,使星期一在前,星期日在后? (抱歉我的语言设置是德语)

library(lubridate)
library(dplyr)

df <- data.frame(dat = as.POSIXlt(c("2021-01-04 00:00:01", 
"2021-01-2 00:00:01",
"2021-01-03 00:00:01", 
"2021-01-03 00:00:01", 
"2021-01-01 00:00:01", 
"2021-01-06 00:00:01", 
"2021-01-07 00:00:01", 
"2021-01-08 00:00:01"))) %>%
  mutate(weekday = weekdays(dat))

ggplot(df, aes(x = weekday)) + geom_bar()

您可以按照您想要的顺序设置因子水平。

library(dplyr)
library(ggplot2)

df <- data.frame(dat = as.POSIXlt(c("2021-01-04 00:00:01", 
                                    "2021-01-2 00:00:01",
                                    "2021-01-03 00:00:01", 
                                    "2021-01-03 00:00:01", 
                                    "2021-01-01 00:00:01", 
                                    "2021-01-06 00:00:01", 
                                    "2021-01-07 00:00:01", 
                                    "2021-01-08 00:00:01"))) %>%
  mutate(weekday = weekdays(dat), 
         weekday = factor(weekday, c('Montag', 'Dienstag', 'Mittwoch', 
                    'Donnerstag', 'Freitag', 'Samstag', 'Sonntag')))

ggplot(df, aes(x = weekday)) + geom_bar()