Skip to content

StanTraykov/c19bg

Repository files navigation

c19bg

Пакет за генериране на COVID-19 графики от отворените данни на България, EUROSTAT, ECDC, НСИ.

Ако сте един от тях...

Ако работите за държавата и имате нещо общо с обработката и публикацията на COVID-19 данни, изпълнете гражданския си дълг и станете whistleblower. Разяснете на обществото как се взимат решенията да се скриват елементарни показатели (напр. географска и възрастова разбивка на смъртните случаи, но и много други).

Инсталация

За инсталация директно от GitHub, въведете в R или (още по-добре) в RStudio:

install.packages("remotes") remotes::install_github("StanTraykov/c19bg")

Ако има проблеми с текущата работна версия, може да изтеглите последния рилийз и инсталирате с install.packages("<път към сваления файл>") или директно от R:

install.packages("remotes") remotes::install_github("StanTraykov/c19bg", ref = "v0.1.1")

Опционално: шрифтове

Еднократно и незадължително. Позволява ползването на шрифтове при извеждането на екран и записването в растерни формати (PNG, JPEG). Не влияе на векторния SVG изход (вкл. по-нататъшна обработка с външни програми).

Windows

За да ползвате шрифтовете на Windows в R, инсталирайите extrafont:

install.packages("extrafont") extrafont::font_import() # отнема време

macOS

R може да ползва шрифтовете на macOS директно, но macOS може да не разполага с шрифта по подразбиране в графиките (Calibri). Ако имате инсталиран MS Office, можете да създадете папка и копирате шрифтовете от Office в нея.

$ mkdir ~/Library/Fonts/Microsoft $ cd ~/Library/Fonts/Microsoft $ cp -a /Applications/Microsoft\ Word.app/Contents/Resources/DFonts/* . 

Ако нямате MS Office, вижте Homebrew и brew cask install font-microsoft-office.

Опционално: ImageMagick и Inkscape за по-качестевен растерен изход

Windows

  • Inkscape
    • Инсталирайте в мястото по подразбиране (C:\Program Files\Inkscape\bin\inkscape.exe) или укажете къде е в опциите (виж по-долу).
  • ImageMagick
    • Сложете в %PATH% или укажете къде е magick.exe в опциите (виж по-долу).

macOS

  • Inkscape—ползвайте версията за macOS
    • Ще бъде открит, ако е в мястото по подразбиране (/Applications/Inkscape.app/Contents/MacOS/inkscape"). Можете да укажете друго в опциите (виж по-долу).
    • Ако имате проблеми, ползвайте последната версия в разработка (latest development version)
  • ImageMagick
    • Инсталирайте с Homebrew (brew install imagemagick)
    • Уверете се, че bin директорията на Homebrew (обикновено /opt/homebrew/bin или /usr/local/bin) е в $PATH. За RStudio е достатъчно, ако прибавите пътя в /etc/paths. (Добавянето в .zprofile важи само за zsh и няма да има ефект.)

Генериране на всички графики

library(c19bg) # бързо генериране на SVG (високо качество) # - отиват в c19bg/plots в текущата папка (обикн. Documents под Windows) # - в c19bg/data ще намерите изтеглените данни и изчислен R (estR.csv) c19_save_all() # бързо генериране на PNG, без презареждане от Интернет (dl = F) c19_save_all(file_ext = ".png", dl = F) # JPEG c19_save_all(file_ext =".jpg", dpi = 125, quality = 100) # PNG 2000x2000px c19_save_all(file_ext = ".png", dpi = 200, w = 10, h = 10) # растеризация с Inkscape, JPEG компресия с ImageMagick # - по-високо качество на PNG и JPEG, но по-бавно # - вижте раздел Опции за указване на пътища към програмите c19_inkmagick() # генерира SVG, PNG и JPEG файлове # или c19_inkmagick(dl = F) # без презареждане от Интернет # вкл. графики за умирания в други страни (ЕС+) c19_inkmagick(d_all = TRUE)

Пакетът ще се свърже с data.egov.bg, ECDC, EUROSTAT, за да вземе необходимите данни. Данните и графиките ще се запишат в подпапка c19bg на текущата (обикновено Documents при отваряне на R под Windows). За да използвате записаните данни (c19bg/data) без повторно сваляне от Интернет, добавете параметър dl = F на функциите за запис на всички графики (вж. примерите).

Забележка: Изчисляването на репродуктивното число R трае няколко минути, може и над 10 на по-стари компютри. Резултатите се запазват (вкл. при затваряне на R) до промяна в изходните данни.

Опции

Опциите могат да се зададат директно в R конзолата или в .Rprofile или сроден файл за автоматично изпълнение при стартиране на R.

# промяна на шрифт options(c19bg.font_family = "Calibri") options(c19bg.font_scale = 1) # скалиране на всички текстове (напр. 0.8, 1.1) options(c19bg.font_size = 14) # базов размер (пробвайте първо font_scale) # Забележка: за промяна на размер/резолюция, използвайте аргумент dpi # във функциите за изход. options(c19bg.output_dir = "c19bg/plots") # ще бъдат създадени, ако ги няма options(c19bg.data_dir = "c19bg/data") options(c19bg.output = list( inkopts = "-w %d --export-filename", mgkopts = "-quality 100", pixwidth = 1375, width = 11, height = 7, inkscape = "\"C:\\Program Files\\Inkscape\\bin\\inkscape.exe\"", magick = "magick" # работи, ако е в PATH )) # изобразяване на всички опции за пакета library(c19bg) # предварително зададени опции ще се запазят names(options())[grep("c19bg",names(options()))]

Генериране на единични графики

library(c19bg) # зареждане на шрифтове за екран/растерен запис (ако са инсталирани) if (.Platform$OS.type == "windows" && "extrafont" %in% rownames(installed.packages())) { extrafont::loadfonts(device = "win") } # слчуаи по възрастови групи my_plot <- c19_var_plot("age", roll_func = mean, roll_window = 7, line_legend = "0") # 14-дневно плаващо средно за Европа, Америка с # изпъкване на Германия my_plot2 <-c19_eu_weekly("r14_cases", continents = c("Europe", "America"), lower_y = 0, highlight = "DE") # извеждане на екран my_plot # или print(my_plot) в неинтерактивен режим my_plot2 c19_oblasts(incid_100k = TRUE) # извеждане директно на екран # запис във файл ggplot2::ggsave(file = "my_plot.png", width = 11, height = 7, plot = my_plot) # R-графика на екран # (отнема време, освен ако R вече не е изчислен) c19_r_plot() # за разлика от функциите за масово записване, които по подразбиране теглят # от Интернет, презареждането трябва да се указва ръчно: c19_reload() # презареждане от диск (c19bg/data) c19_reload(redownload = TRUE) # презареждане от Интернет # помощ ?c19_var_plot ?c19_eu_weekly #etc

Документация на публичните функции в пакета

Данни

library(c19bg) # Данните могат да се достъпят с тези две функции # (те се използват и от графичните фукнции) eu_data <- c19_eu_data() bg_data <- c19_bg_data() # При първо изпълнение, те свалят и обработват данни от # data.egov.bg, ECDC, и EUROSTAT. Това трае известно време. # Последващи повиквания връщат вече заредените данни. За # презареждане, напр.: new_bg_data <- c19_bg_data(reload = TRUE) # от диск new_eu_data <- c19_eu_data(redownload = TRUE) # от Интернет # Съдържанието може да се разглежда/задълбава в браузера # на данни на RStudio. # ECDC/EUROSTAT седмични случаи, смъртни случаи от COVID-19, # свръхсмъртност, фактори на надвишаване, брой хоспитализирани, # тестове, позитивност View(eu_data$factor_tab) # Умирания по седмици от EUROSTAT View(eu_data$eurostat_deaths) # За България View(bg_data$gen_inc_hist) # обща статистика, вкл. ограничен набор # данни от преди да отворят данните View(bg_data$age) # по възраст (днвени) View(bg_data$subdivs) # по области (дневни)

Примерна заявка и графика

Плаващо средно 7 дни по области.

library(dplyr) library(tidyr) library(ggplot2) library(c19bg) bg_data <- c19_bg_data() oblasts_table <- bg_data$subdivs %>% select(!ends_with("_ACT")) %>% pivot_longer(cols = !matches("date"), names_to = "oblast", names_pattern = "(.*)_ALL", values_to = "cases") %>% group_by(oblast) %>% mutate(mva7 = zoo::rollapply(cases, 7, mean, align = "right", fill = NA)) # графика my_plot <- ggplot(data = oblasts_table, mapping = aes(x = date, y = mva7, color = oblast)) + geom_line() my_plot # изобразяване на екран ggsave(file = "my_plot.svg", plot = my_plot, width = 13, height = 8)

About

COVID-19 charts for Bulgaria based on data.egov.bg, ECDC, EUROSTAT, NSI data.

Topics

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Packages

No packages published