如何更改自动图中的构面标签以进行 R 中的 stl 分解?

问题描述 投票:0回答:1

我在更改 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")

Plot

我只需将数据方面名称更改为“Observaciones”并将条带位置更改为顶部。

r ggplot2 label autoplot stl-decomposition
1个回答
0
投票

您可以覆盖

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"
  )

© www.soinside.com 2019 - 2024. All rights reserved.