我在更改 stl 图中的数据方面标签时遇到问题,我能够通过经典分解来完成此操作,但 stl 分解的工作方式不同。我不会说英语,所以,我需要用西班牙语添加标签,但这似乎是不可能的,而且,我编程不太好,因为我不知道该怎么做,所以,我真的需要帮助。下面是我的代码,我能够更改另一个方面标签,但不能更改数据标签(只需在“标签”功能中添加标签,它不起作用,只允许“季节性、趋势和随机”标签)。另外,我需要将条带位置更改为顶部。
d_stl <- stl(ts_prom_mensual, s.window = "periodic", robust = TRUE)
autoplot(d_stl, labels = c("Estacionalidad", "Tendencia", "Aleatoreidad"))+
ggtitle("Descomposición stl de serie temporal de los datos generados por el\n mareografo ubicado en la zona de ______ con regularidad mensual\n durante el periodo coomprendido entre ____ y ________")+
theme_bw()+
theme(title = element_text(family = 'serif', size = 12, face = 'bold', hjust = 0.5, vjust = 0.5),
axis.text = element_text(family = 'serif', size = 10),
axis.title.x = element_text(face = "plain", size = 12),
axis.title.y = element_text(face = "plain", size = 12),
strip.background = element_rect(fill = 'white'),
strip.text = element_text(family = 'serif')
)+
labs(x="Año", y= "Componentes")+
geom_line(colour = "seagreen")
我只需将数据方面名称更改为“Observaciones”并将条带位置更改为顶部。
您可以覆盖
autoplot.stl
使用的默认构面层,例如使用 facet_wrap
和 ncol=1
会自动将条形文本放在顶部,并且标签使用自定义 labeller()
。
使用基于
?stl
中的默认示例的最小可重现示例:
library(ggplot2)
library(forecast)
#> Registered S3 method overwritten by 'quantmod':
#> method from
#> as.zoo.data.frame zoo
d_stl <- stl(nottem, s.window = "periodic", robust = TRUE)
autoplot(
d_stl
) +
ggtitle(paste0(
"Descomposición stl de serie temporal de",
" los datos generados por el\n",
" mareografo ubicado en la zona de ______ ",
"con regularidad mensual\n ",
"durante el periodo coomprendido entre ____ y ________"
)) +
theme_bw() +
theme(
title = element_text(
family = "serif", size = 12,
face = "bold", hjust = 0.5, vjust = 0.5
),
axis.text = element_text(family = "serif", size = 10),
axis.title.x = element_text(face = "plain", size = 12),
axis.title.y = element_text(face = "plain", size = 12),
strip.background = element_rect(fill = "white"),
strip.text = element_text(family = "serif")
) +
labs(x = "Año", y = "Componentes") +
geom_line(colour = "seagreen") +
facet_wrap(~parts,
labeller = labeller(
parts = c(
data = "Observaciones",
trend = "Estacionalidad",
seasonal = "Tendencia",
remainder = "Aleatoreidad"
)
),
ncol = 1,
scales = "free_y"
)