Я пытаюсь извлечь только день и месяц из записей as.POSIXct в кадре данных, чтобы наложить на несколько лет данные за те же месяцы в ggplot.
У меня есть данные как время-объекты серии ts.
data.ts<-read.zoo(data, format = "%Y-%m-%d")
ts<-SMA(data.ts[,2], n=10)
df<-data.frame(date=as.POSIXct(time(ts)), value=ts)
ggplot(df, aes(x=date, y=value),
group=factor(year(date)), colour=factor(year(date))) +
geom_line() +
labs(x="Month", colour="Year") +
theme_classic()
Теперь, очевидно, если я буду использовать только «дату» в aes, она будет отображать нормальный временной ряд в виде последовательной последовательности по годам.Если я сделаю «день (дата)», он будет сгруппирован по дням на оси х.Как вытащить день и месяц от даты?Я нашел только yearmon ().Если я попробую as.Date (df $ date, format = "% d% m"), он ничего не сделает, и если я покажу результаты команды, он все равно будет включать год.
data:
> data
Date V1
1 2017-02-04 113.26240
2 2017-02-05 113.89059
3 2017-02-06 114.82531
4 2017-02-07 115.63410
5 2017-02-08 113.68569
6 2017-02-09 115.72382
7 2017-02-10 114.48750
8 2017-02-11 114.32556
9 2017-02-12 113.77024
10 2017-02-13 113.17396
11 2017-02-14 111.96292
12 2017-02-15 113.20875
13 2017-02-16 115.79344
14 2017-02-17 114.51451
15 2017-02-18 113.83330
16 2017-02-19 114.13128
17 2017-02-20 113.43267
18 2017-02-21 115.85417
19 2017-02-22 114.13271
20 2017-02-23 113.65309
21 2017-02-24 115.69795
22 2017-02-25 115.37587
23 2017-02-26 114.64885
24 2017-02-27 115.05736
25 2017-02-28 116.25590
Если я создаю новый столбец только с днем и месяцем
df$day<-format(df$date, "%m/%d")
ggplot(df, aes(x=day, y=value),
group=factor(year(date)), colour=factor(year(date))) +
geom_line() +
labs(x="Month", colour="Year") +
theme_classic()
, я получаю такой график за два года.
Я хочу, чтобы это выглядело так, только с ежедневными данными вместо ежемесячных. ggplot: несколько лет на одном графике по месяцам