#r #ggplot2 #graph #rename
Вопрос:
Я пытаюсь построить гистограмму в R дни недели-это ось x, и я хочу, чтобы они были метками для каждого бара, но в наборе данных они отмечены от 1 до 7, начиная с воскресенья, поэтому я сделал следующее:
week_day2$day_of_week lt;- recode(week_day2$day_of_week, "1"="Sunday", "2"="Monday", "3"="Tuesday", "4"="Wednesday", "5"="Thursday", "6"="Friday", "7"="Saturday")
Но потом я не смог привести план бара в порядок, поэтому я использовал библиотеку forcats
library(tidyverse) library(forcats) Graph_major_days lt;- week_day2 %gt;% mutate(name = fct_relevel(day_of_week, "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")) %gt;% ggplot( aes(x=name, y=n)) geom_bar(stat="identity")
Я хочу знать, есть ли более простой/читаемый способ сделать такие вещи
Ответ №1:
Если я вас правильно понял, вам следует сохранить числа в наборе данных и вместо этого просто изменить метки графика на дни недели. Вот полный пример:
library(ggplot2) set.seed(0) df lt;- data.frame(day_of_week = sample(1:7, 7), n = rnorm(7)) days = c("Sun", "Mon", "Tue", "Thu", "Wed", "Fri", "Sat") ggplot(df, aes(x = day_of_week, y = n)) geom_bar(stat="identity") scale_x_continuous(breaks = 1:7, labels = days)
Как вы можете видеть, даже если дни не упорядочены в наборе данных, они отображаются упорядоченными на графике. При необходимости вы также можете добавить дни недели в набор данных, просто не удаляйте числовые значения.