Hello! Есть ли способ индексировать график, чтобы начать и закончить в определенных точках
(который может быть не по порядку номеров)?
У меня есть данные, которые начинаются 1 октября и заканчиваются 31 сентября следующего года. Серия повторяется в течение нескольких лет, и я хочу построить ежедневную диаграмму сезонности. Задача заключается в том, что ось X не от низкой к высокой, она работает 10-11-12-1-2-3-4-5-6-7-8-9.
Вопрос 1:
Можете ли вы заказать индекс по месяцам 10-11-12-1-2-3-4-5-6-7-8-9?
в то время как совместимость с форматированием% m-% d, так как реальная проблема заключается в
ежедневный формат, но для краткости я использую только месяцы.
результат должен выглядеть примерно так ... извините, мне пришлось использовать Excel ...
Вопрос 2:
Можем ли мы удалить подключенные линии графика или решение 1, естественно, исправим
вопрос 2? примеры в попытках ниже.
Вопрос 3:
Может ли окончательное форматирование решения позволить взять скользящее среднее или другое
мутации исходных данных? Таблица в попытке № 2 позволит получить среднее значение каждого месяца по году. Поскольку 17 июля - 6, а 18 июля - 12, на графике мы бы нанесли 9, т. Е. Для всего графика.
Вопрос 4:
Существует ли эквивалент XTS для решения этой проблемы?
СПАСИБО, СПАСИБО, СПАСИБО!
library(ggplot2)
library(plotly)
library(tidyr)
library(reshape2)
Date <- seq(as.Date("2016-10-1"), as.Date("2018-09-01"), by="month")
values <- c(2,3,4,3,4,5,6,4,5,6,7,8,9,10,8,9,10,11,12,13,11,12,13,14)
YearEnd <-c(2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,
2018,2018,2018,2018,2018,2018,2018,2018,2018,2018,2018,2018)
df <- data.frame(Date,values,YearEnd)
## PLOT THE TIMESERIES
plot_ly(df, x = ~Date, y = ~values, type = "scatter", mode = "lines")
## PLOT THE DATA BY MONTH: attempt 1
df$Month <- format(df$Date, format="%m")
df2 <- df %>%
select(values, Month, YearEnd)
plot_ly(df2, x = ~Month, y = ~values, type = "scatter", mode = "lines",
connectgaps = FALSE)
## Plot starts on the 10th month, which is good, but the index is
## in standard order, not 10-11-12-1-2-3-4-5-6-7-8-9
## It also still connects the gaps, bad.
## CREATE A PIVOTTABLE: attempt 2
table <- spread(df2,YearEnd, values)
df3 <- melt(table , id.vars = 'Month', variable.name = 'series')
plot_ly(df3, x = ~Month, y = ~values, type = "scatter", mode = "lines",
connectgaps = FALSE)
## now the data are in the right order, but the index is still wrong
## I also do not understand how plotly is ordering it correctly, as 2
## is not the starting point in January.