Как привести ось X в порядок (месяц) в R
Я хочу построить график с месяцем, но ось X не в порядке, например, "Apr","Aug","Nov"..... Но я хочу, чтобы порядок на оси X был похож на "Jan", "Фев", "Мар"........
#change the format of date
date_month <- format(date_1, "%b")
class(date_month)
[1] "character"
head(date_month)
[1] "Jul" "Jul" "Jul" "Jul" "Jul" "Jul"
plot(table(date_month), xlab = "Month", ylab = "count")
Я попробовал это:
x1 <- factor(date_month, levels=c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov","Dec"))
plot(y ~ x1)
а также:
plot(table(date_month), xlab = "Month", ylab = "count")
axis(date_month,labels = c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov","Dec"))
Не работает вообще. Может ли кто-нибудь помочь мне с этим? Большое спасибо.
2 ответа
В вашем коде используется формат для извлечения месяцев, но используется базовая функция r months
ты легко получишь решение
Если вы используете format
вывод похож на:
> head(format(date_month$date, "%b"))
[1] "Jun" "Feb" "Mar" "Oct" "Oct" "Aug"
months
полностью извлечет название месяца, как показано ниже:
> head(months(date_month$date))
[1] "June" "February" "March" "October" "October" "August"
согласно вашему коду, сделайте следующее:
date_month<-months(date_1)
date_month<-factor(date_month,levels=month.name)
Теперь заговор и попробуйте.
образец кода:
date_month<-list(date=sample(seq(as.Date('2018/01/01'),
as.Date('2018/11/08'), by="day"), 100))
> head(date_month)
date
1 2018-06-13
2 2018-02-19
3 2018-03-05
4 2018-10-29
5 2018-10-25
6 2018-08-22
month.name
является встроенной "константой" со всеми названиями месяцев в полной форме. Чтобы соответствовать его вашим данным, используйте substr()
и оставьте только первые три символа.
date_month <- factor(date_month, levels = substr(month.name, 1, 3))
Затем подготовьте это как обычно.
plot(table(date_month), xlab = "Month", ylab = "count")
Данные
set.seed(42)
date_1 <- as.Date(sample(0:364, 5e5, replace=TRUE),
origin="2018-01-01")