library(pttrobo)
library(tidyverse)
# alustetaan piirtäjä
piirtaja <- pttrobo::ptt_plot()

# piirrettävä data (esimerkin vuoksi, otettu sekä kausitasoitettu että trendisarja)
df <- robonomistClient::data("StatFin/kan/ntp/statfin_ntp_pxt_132h.px", tidy_time=TRUE) %>%
  filter(str_detect(Taloustoimi, "B1GMH")) %>%
  filter(Tiedot %in% c("Kausitasoitettu ja työpäiväkorjattu sarja, viitevuosi 2015, miljoonaa euroa",
                       "Trendisarja, viitevuosi 2015, miljoonaa euroa"))

#https://www.ptt.fi/layout/img/ptt-logo.pn

# lines funktion avulla voi piirtää useamman sarjan "grouping_variable" hyödyntäen
df |>
  piirtaja$lines(
    grouping_variable = Tiedot,
    title = "BKT",
    subtitle = "Vertailu kausitasoitettuun sarjaan",
    lahde = "Lähde: Tilastokeskus.",
    yksikko = "€"
  )
# yksittäinen sarja voidaan piirtää funktion "line" avulla
df %>%
  filter(Tiedot == "Kausitasoitettu ja työpäiväkorjattu sarja, viitevuosi 2015, miljoonaa euroa") |>
  piirtaja$line(
    title = "BKT",
    lahde = "Lähde: Tilastokeskus."
  )
# example:

df <- robonomistClient::data("StatFin/kan/ntp/statfin_ntp_pxt_132h.px", tidy_time = TRUE) %>%
    filter(str_detect(Taloustoimi, "B1GMH")) %>%
    filter(Tiedot %in% c("Kausitasoitettu ja työpäiväkorjattu sarja, viitevuosi 2015, miljoonaa euroa")) %>% 
    mutate(value = ((value/ lag(value, 4)) -1) * 100) %>%
    drop_na()

df %>%
  filter(Tiedot == "Kausitasoitettu ja työpäiväkorjattu sarja, viitevuosi 2015, miljoonaa euroa") %>%
  filter(time > as.Date("2010-01-01")) |>

  piirtaja$line_with_preds(
    excel_path = "ptt_ennusteet_KT.xlsx",
    serie_name = "StatFin/kan/ntp/statfin_ntp_pxt_132h.px§B1GMH§kausitvv2015",
    lahde = "Lähde: Tilastokeskus."
  )


"serie identifier: StatFin/kan/ntp/statfin_ntp_pxt_132h.px§P3KS14_S15§kausitvv2015"
## df2 <- robonomistClient::data("StatFin/kan/ntp/statfin_ntp_pxt_132h.px", tidy_time = TRUE) %>%
##   filter(str_detect(Taloustoimi, "P3KS14_S15")) %>%
##   filter(Tiedot == "Kausitasoitettu ja työpäiväkorjattu sarja, viitevuosi 2015, miljoonaa euroa") %>% 
##   mutate(value = ((value/ lag(value, 4)) -1) * 100) %>%
##   drop_na()

## df2 |>
##   filter(time > as.Date("2010-01-01")) |> 
##   piirtaja$line_with_preds(
##     excel_path = "ptt_ennusteet_KT.xlsx",
##     serie_name = "StatFin/kan/ntp/statfin_ntp_pxt_132h.px§P3KS14_S15§kausitvv2015",
##     lahde = "Tilastokeskus"
##   )


## # ESIMERKKI KUN 2 SARJAA ENNUSTEINEEN
## excel_path <- "ptt_ennusteet_KT.xlsx"
## serie_names <- c("StatFin/kan/ntp/statfin_ntp_pxt_132h.px§B1GMH§kausitvv2015",
##                "StatFin/kan/ntp/statfin_ntp_pxt_132h.px§P3KS14_S15§kausitvv2015")

## # labels, poimitaan excelistä sarjan nimen perusteella. Käytetään apufunktiota.
## labels <- piirtaja$labels_from_excel(excel_path = excel_path,
##                                      serie_name = serie_names[1])

## # Alustetaan 1. datasarja tarvittavine muuttujineen

## # datan yksilöivä tunniste: "StatFin/kan/ntp/statfin_ntp_pxt_132h.px§B1GMH§kausitvv2015"
## d1 <-
##   robonomistClient::data("StatFin/kan/ntp/statfin_ntp_pxt_132h.px", tidy_time = TRUE) %>%
##   filter(str_detect(Taloustoimi, "B1GMH")) %>%
##   filter(Tiedot %in% c("Kausitasoitettu ja työpäiväkorjattu sarja, viitevuosi 2015, miljoonaa euroa")) %>%
##   mutate(value = ((value/ lag(value, 4)) -1) * 100) %>%
##   drop_na()

## d1_ennusteet <- piirtaja$ennusteet_from_excel("ptt_ennusteet_KT.xlsx", serie_names[1])
## serie_name_1 <- piirtaja$serie_name_from_excel("ptt_ennusteet_KT.xlsx", serie_names[1])

## # Alustetaan 2. datasarja tarvittavine muuttujinee
## # datasarjan yksilöivä nimi: StatFin/kan/ntp/statfin_ntp_pxt_132h.px§P3KS14_S15§kausitvv2015
## d2 <- robonomistClient::data("StatFin/kan/ntp/statfin_ntp_pxt_132h.px", tidy_time = TRUE) %>%
##   filter(str_detect(Taloustoimi, "P3KS14_S15")) %>%
##   filter(Tiedot %in% c("Kausitasoitettu ja työpäiväkorjattu sarja, viitevuosi 2015, miljoonaa euroa")) %>%
##   mutate(value = ((value/ lag(value, 4)) -1) * 100) %>%
##   drop_na()

## d2_ennusteet <- ennuste_time_serie_from_excel(excel_path, serie_names[2])
## serie_name_2 <- serie_name_from_excel(excel_path, serie_names[2])

## piirtaja$two_lines_with_preds(
##   labels = labels, d1=d1, d1_ennusteet=d1_ennusteet, serie_name_1 = serie_name_1,
##                               d2=d2, d2_ennusteet=d2_ennusteet, serie_name_2 = serie_name_2,
##                               rounding= 2) 
# ESIMERKKI KÄYTTÄEN YAML TIEDOSTOA KUVION SPEKSAUKSEEN

library(pttrobo)
library(tidyverse)

# alustetaan piirtäjä
piirtaja <- pttrobo::ptt_plot()

# muodostetaan kuvion käyttämä historiadata ja määritykset käyttäen yaml tiedostoa
file_path <- system.file("ennustekuvat/test_without_ennusteet.yaml", package="pttrobo")
kuvion_nimi = "bkt_ja_kulutus"
kuvio_spec <- pttrobo::yaml_to_plotly_data(file=file_path, kuvion_nimi=kuvion_nimi)

# haetaan kuvion käyttämä ennustedata 
# kuviossa on sekä bkt että kulutus sarja. Seuraavassa Serie 1 on bkt ja serie 2 kulutus.
ennustedata_path <- "ptt_ennusteet_KT.xlsx"
ennustedata_serie_name_1 <- "StatFin/kan/ntp/statfin_ntp_pxt_132h.px§B1GMH§kausitvv2015"
ennustedata_serie_name_2 <- "StatFin/kan/ntp/statfin_ntp_pxt_132h.px§P3KS14_S15§kausitvv2015"

ennustedata_serie_1 <- pttrobo::ennuste_time_serie_from_excel(ennustedata_path, ennustedata_serie_name_1)
ennustedata_serie_2 <- pttrobo::ennuste_time_serie_from_excel(ennustedata_path, ennustedata_serie_name_2)

# piirretään kuvio. Huom. Tehdään transform_data funktiolla tarvittaessa vuosimuutos transformaatio
piirtaja$two_lines_with_preds(d1 = yearly_change(kuvio_spec$datas$data_1$data), d1_ennusteet = ennustedata_serie_1, serie_name_1 = kuvio_spec$datas$data_1$serie_name,
                              d2 = yearly_change(kuvio_spec$datas$data_2$data), d2_ennusteet = ennustedata_serie_2, serie_name_2 = kuvio_spec$datas$data_2$serie_name,
                              labels = kuvio_spec$labels)
# 2. ESIMERKKI KÄYTTÄEN YAML TIEDOSTOA KUVION SPEKSAUKSEEN.
# Käytetään nyt haku_id:tä yaml tiedostosta Excel ennusteisiin "mäppäämiseen"
# id:n muoto excelissä ptt_ennusteet_KT_uusi_sarja_id.xlsx

library(pttrobo)
library(tidyverse)

# alustetaan piirtäjä
piirtaja <- pttrobo::ptt_plot()

# muodostetaan kuvion käyttämä historiadata ja määritykset käyttäen yaml tiedostoa
file_path <- system.file("ennustekuvat/test_without_ennusteet.yaml", package="pttrobo")
kuvion_nimi = "bkt_ja_kulutus"
kuvio_spec <- pttrobo::yaml_to_plotly_data(file=file_path, kuvion_nimi=kuvion_nimi)

# piirretään kuvio. Huom. Tehdään transform_data funktiolla tarvittaessa vuosimuutos transformaatio
piirtaja$two_lines_with_preds(
  d1 = yearly_change(kuvio_spec$datas$data_1$data),
  d1_ennusteet = pttrobo::ennuste_time_serie_from_excel("ptt_ennusteet_KT_uusi_sarja_id.xlsx", kuvio_spec$datas$data_1$datahaku_id), 
  serie_name_1 = kuvio_spec$datas$data_1$serie_name,
  d2 = yearly_change(kuvio_spec$datas$data_2$data), 
  d2_ennusteet = pttrobo::ennuste_time_serie_from_excel("ptt_ennusteet_KT_uusi_sarja_id.xlsx", kuvio_spec$datas$data_2$datahaku_id), 
  serie_name_2 = kuvio_spec$datas$data_2$serie_name,
  labels = kuvio_spec$labels
)

# kuvion voi piirtää myös automatisoidummin tarjoamalla data specsit sekä polun ennuste-exceliin joka koodattu datahaku id:llä
piirtaja$two_lines_with_preds(
  dataspec_1 = kuvio_spec$datas$data_1,
  dataspec_2 = kuvio_spec$datas$data_2,
  ennuste_path = "ptt_ennusteet_KT_uusi_sarja_id.xlsx",
  labels = kuvio_spec$labels
)
# 3. esimerkki. Kuvion voi piirtää vielä automatisoidummin 
# parametreina pelkästään yaml tiedoston polkua sekä ennuste-excelin polkua.

# käytetään draw_ennuste funktiota, joka tarvitsee parametreikseen:
  # yaml_path (polku kuvion/kuviot spesifioivaan yaml tiedostoon)
  # yaml_kuvion_nimi (yaml tiedostossa annettu nimi kuvion speksille) 
  # excel_path (polku ennuste-exceliin)
  # optional from_year (rajaa näytettävät vuodet alkamaan tästä vuodesta)

library(pttrobo)

draw_ennuste(yaml_path= system.file("ennustekuvat/test_without_ennusteet.yaml", package="pttrobo"),
     yaml_kuvion_nimi = "bkt_ja_kulutus",
     excel_path = "ptt_ennusteet_KT_uusi_sarja_id.xlsx")


# rajataan graafi 2015 vuodesta eteenpäin
draw_ennuste(
  yaml_path= system.file("ennustekuvat/test_without_ennusteet.yaml", package="pttrobo"),
  yaml_kuvion_nimi = "bkt_ja_kulutus",
  excel_path = "ptt_ennusteet_KT_uusi_sarja_id.xlsx",
  from_year = 2015
)


pttry/pttrobo documentation built on March 5, 2025, 6:36 p.m.