NIJZ radargraf poročilo (vsebinsko narejeno, potrebni še oblikovni porpavki)

This commit is contained in:
Miha 2021-10-19 16:12:44 +02:00
parent ab71226f6c
commit fd8250b18a
6 changed files with 387 additions and 0 deletions

View File

@ -0,0 +1,286 @@
# Created By Miha 16.10.2021
#----------------- DESC ----------------#
# Za potrebe NIJZ bomo generirali
# PDF poročilo, ki bo vsebovalo
# tudi radar graf.
# Tema samega poročila bo
# PRIPOROČILA ZA ZAŠČITO PRED UV SEVANJEM
#--------------- //DESC// ---------------#
#----------------- ENCODING 1KA STREŽNNIK ----------------#
# Nastavimo encoding za potrebe strežnika
# Pogosto se na 1KA strežniku pokvarijo šumniki
# zato šumniki (v PDF poročilu) lokalno delajo
# na strežniku pa ne
Sys.setlocale(category = "LC_ALL", locale = "slovenian")
#--------------- //ENCODING 1KA STREŽNNIK// --------------#
#-------------------------- USER DEFINED FUNCTION ---------------------#
# Za potrebe pravilnega prikaza teksta v posameznih poglavjih
latexTranslate <- function(x, color = "NE") {
x <- gsub("<strong>", "\\\\\\\\textbf{", x)
x <- gsub("</strong>", "}", x)
x <-
gsub("<br /> <br />", "\\\\\\\\newline \\\\\\\\newline", x)
x <-
gsub("<br />  <br />  ", "\\\\\\\\newline", x, fixed = FALSE)
x <- gsub("<br />", "\\\\\\\\newline", x)
x <- gsub("%", "\\\\\\\\%", x)
# ALI BNARVAMO?
if (color == "DA") {
# Update, Potem pa želi NIJZ, da se prvi odstavek
# vedno obarva z "zeleno barvo, zaot moramo to
# utrezno ločiti
obarvajX <- stringr::str_extract(x, "[^}]+")
# DOdamo barvanje
obarvajX_1 <- paste0("{\\\\color{zelena}", obarvajX, "}")
# Nadomestimo
x <- gsub(obarvajX, obarvajX_1, x, fixed=TRUE)
}
# val <- strsplit(x, "\\\\newline ")[[1]]
#
# # Gledamo tretji
# odst <- val[4:length(val)]
# Po drugem odstavku zmanjšamo pisavo na 9
return(x)
}
#------------------------ //USER DEFINED FUNCTION// -------------------#
##############################
# RADAR CHART FOR NIJZ
##############################
#------------------ LIBRARIES -------------------#
# required libraries (radar chart)
library(fmsb)
# required libraries export image
library(Cairo)
# Data manipulation
library(stringr)
library(dplyr)
#---------------- //LIBRARIES// -----------------#
#------------------------------ READ DATA ----------------------------#
# Import data
# V argumentu klica R skripte boš dobil id repsondenta.
# Ime CSV-ja je potem "nijz_ID-RESPONDENTA.csv" in tudi poročilo,
# ki ga zgeneriraš naj vsebuje to številko (da zadeva deluje tudi če
# istočasno dva respondenta generirata poročilo).
# Recimo "report_ID-RESPONDENTA.pdf".
filenames <- list.files("modules/mod_NIJZ/temp/",
pattern = "*.csv",
full.names = TRUE)
data <- read.csv2(
filenames,
sep = ";",
header = FALSE,
stringsAsFactors = FALSE
)
# Remove missing values
data <- as.data.frame(data)
#--------------------------- // READ DATA // ------------------------#
#-------------------------- RADAR CHART -----------------------------#
CairoPNG('modules/mod_NIJZ/results/img/radar.png', width = 900, height = 700) # Export chart to png
# cairo_pdf(
# paste('modules/mod_NIJZ/results/img/radar.pdf', sep = ''),
# family = 'sans',
# pointsize = 15,
# width = 7.5,
# height = 8.5
# )
# Create rang which will be labeld in grapf (10 likert scale)
myrange <- c(0, 7)
# create a data frame with the max and min as the first two rows
mydf <-
as.data.frame(rbind(max = myrange[2], min = myrange[1], as.numeric(data[1:7,]$V2)),
stringsAsFactors = FALSE)
# Add names which will be displayed as labels in
# chart and also their means in parentheses
labels <- gsub('(.{1,20})(\\s|$)', '\\1\n', data[1:7,]$V1)
colnames(mydf) <- labels
# Deljenje besed zaradi preglednosti
par(col="#004078", font = 2)
# Plot a radar chart
radarchart(
mydf,
pcol = "#D0D0D0",
pfcol = scales::alpha("#D0D0D0", 0.5),
# Customize the grid
cglcol = scales::alpha("grey", 0.6),
cglty = 1,
cglwd = 1,
# Customize the axis
axislabcol = "black",
na.itp = FALSE,
plwd = 3,
plty = 1,
seg = 7,
axistype = 1,
caxislabels = 0:7,
centerzero = TRUE
)
#------------------------ //RADAR CHART//----------------------------#
dev.off()
#------------------------ 1. Moj FOTOTIP KOŽE: ------------------------#
varianta <- data %>% filter(str_detect(V1, "VARIANTA")) %>% select(V2)
varianta <- latexTranslate(varianta)
#----------------------- //1. Moj FOTOTIP KOŽE:// ----------------------#
#------------------------ Poletni urnik za izvajanje aktivnosti na prostem ------------------------#
sonce <- data %>% filter(str_detect(V1, "SONCE")) %>% select(V2)
sonce <- latexTranslate(sonce, color = "DA")
#----------------------- Poletni urnik za izvajanje aktivnosti na prostem ----------------------#
#------------------------ Poletni urnik za izvajanje aktivnosti na prostem ------------------------#
oblacila <- data %>% filter(str_detect(V1, "OBLACILA")) %>% select(V2)
oblacila <- latexTranslate(oblacila, color = "DA")
#----------------------- Poletni urnik za izvajanje aktivnosti na prostem ----------------------#
#------------------------ Poletni urnik za izvajanje aktivnosti na prostem ------------------------#
solarij <- data %>% filter(str_detect(V1, "SOLARIJ")) %>% select(V2)
solarij <- latexTranslate(solarij, color = "DA")
#---
#------------------------ Poletni urnik za izvajanje aktivnosti na prostem ------------------------#
kemija <- data %>% filter(str_detect(V1, "KEMIJA")) %>% select(V2)
kemija <- latexTranslate(kemija, color = "DA")
#---
#-------------------------------- ZAČNEMO S PRIPRAVO IN SESTAVO PDF DOKUMENTA ---------------------------------#
# Sledi del, kjer bomo vse dele sestavili v celoto, torej latex in R kodo ter s pomočjo
# tools::texi2pdf generirali PDF poročilo
# LATEX KOSI ------------------------------------------------------
#=================================================================#
# Najprej s funkcijo scan preberemo latex datoteke
# Glava dokumenta, kjer definiram celotno strukturo latex dokumenta
tex.glava <-
scan(
"modules/mod_NIJZ/latexkosi/glava-nijz.tex",
character(0),
sep = "\n",
quiet = TRUE,
encoding = 'UTF-8'
)
# # Ter datum, ko je bil anketiranje izvedeno
tex.glava <-
gsub(
pattern = '!varianta!',
replacement = varianta,
x = tex.glava
)
tex.glava <-
gsub(
pattern = '!sonce!',
replacement = sonce,
x = tex.glava
)
tex.glava <-
gsub(
pattern = '!oblacila!',
replacement = oblacila,
x = tex.glava
)
tex.glava <-
gsub(
pattern = '!solarij!',
replacement = Hmisc::latexTranslate(solarij),
x = tex.glava
)
tex.glava <-
gsub(
pattern = '!kemija!',
replacement = Hmisc::latexTranslate(kemija),
x = tex.glava
)
#---------------------- //LATEX KOSI// --------------------#
#---------- SESTAVA VSEH DELOV V CELOTO ----------#
# Posamezne
tex.izbor <- c(tex.glava,
"\\end{document}")
#-------- //SESTAVA VSEH DELOV V CELOTO// --------#
#--------- USTREZNO UREDIMO ŠE POTI IN IME KONČNEGA POROČILA ----------#
# Dodamo še ime fajla
name <- list.files("modules/mod_NIJZ/temp/",
pattern = "*.csv",
full.names = FALSE)
name <- gsub(".csv", ".tex", name)
# Nastavimo pot, kamor bomo shranili latex datoteko
Rdirektorij <- getwd()
setwd(paste(Rdirektorij, "modules/mod_NIJZ/results", sep = "/"))
# Zapišemo Tex file s funkcijo cat, saj želimo izpisati
# celotno latex codo
cat(tex.izbor,
file = name,
sep = '\n')
# Tex oziroma file generiran v prejšnjem primeru
# Pa nato pretvorimo v PDF
tools::texi2pdf(file = name,
quiet = TRUE,
clean = TRUE)
# V primeru, da poročilo generiramo večkrat (popravki terstiranje)
# Še enkrat nastavimo pot v prvotni direktorij, drugače
# bo pot napačna, saj smo jo za potrebe geneiranja latex oz tex.
# fila spremenili
setwd(Rdirektorij)
#------- //USTREZNO UREDIMO ŠE POTI IN IME KONČNEGA POROČILA// --------#
#------------------------------ //ZAČNEMO S PRIPRAVO IN SESTAVO PDF DOKUMENTA// -------------------------------#

View File

@ -0,0 +1,100 @@
\documentclass[10pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[cp1250]{inputenc}
\usepackage[sfdefault,lf]{carlito}
\usepackage{afterpage} % needed to colour only front cover and no other page
\usepackage{graphicx} % to be able to embed graphical content
\usepackage{tcolorbox} % needed for the text boxes
\usepackage{color} % needed to recognise hex colour
\usepackage[margin=0.9in,bottom=1in,top=1in]{geometry}
\usepackage{float} % needed for floating table
\usepackage{hyperref} % PDF hyperlinks to a given page.
\usepackage{tikz}
\catcode `č=13
\def č{\v c}
\catcode `š=13
\def š{\v s}
\catcode `ž=13
\def ž{\v z}
\catcode `Č=13
\def Č{\v C}
\catcode `Š=13
\def Š{\v S}
\catcode `Ž=13
\def Ž{\v Z}
%---------- ZELEN OKVIR OKOLI RADAR GRAFA------------
\usepackage{efbox,graphicx}
\definecolor{zelena}{RGB}{0,153,153}
\efboxsetup{linecolor=zelena,linewidth=1pt}
\definecolor{rumena}{HTML}{ffe599}
%----------------------------------------------------------------------------
\begin{document} % - - - - - - - - - - - - - - - - - - - - - - - - - -
% The title page
\makeatletter
\begin{titlepage}
% Slika kot ozadje na prvi strani----------------
\tikz[remember picture,overlay] \node[inner sep=0pt] at (current page.center){\includegraphics[width=\paperwidth,height=\paperheight]{../latexkosi/logo/titlepage2.png}};~\\[6.65cm]
\textbf{1. Moj FOTOTIP KOŽE:} \newline \newline !varianta!
\ \\ \\
\begin{minipage}[t]{0.40\textwidth}
\textbf{2. POLARNI GRAFIKON} \newline
\hspace*{0.5cm}- grafični prikaz mojega dosedanjega \\
\hspace*{0.5cm} izvajanja ukrepov za zaščito pred \\
\hspace*{0.5cm} škodljivim delovanjem UV sevanja:
\end{minipage}%
%second column
\begin{minipage}[t]{0.54\textwidth}
\begin{figure}[H]
\vspace*{-0.7cm}
\efbox{\includegraphics[width=10cm,height=8.1cm]{../results/img/radar.png}}
\end{figure}
\end{minipage}
\end{titlepage}
\thispagestyle{empty}
\newgeometry{left=1.8cm, right = 1.8cm}
% Rdeč trak Širina rdečega traka na drugi strani-----------------------------
\vspace*{-1.2cm}
\hspace*{-0.8cm}
\tikz[remember picture,overlay] \node[inner sep=0pt] at (current page.center){\includegraphics[width=\paperwidth,height=\paperheight]{../latexkosi/logo/second_page.png}};
\colorbox{rumena} {\textbf{Poletni urnik za izvajanje aktivnosti na prostem: \phantom{This text will be invisible invisible test test test test test test test test t} }}
\newline
\newline
!sonce!
\newline
\newline
\colorbox{rumena} {\textbf{Izbira zaščitnih oblačil \phantom{This text will be invisible invisible invisiblee will be invisible invisible test test tes testt test test } }}
\newline
\newline
!oblacila!
\newline
\newline
\colorbox{rumena} {\textbf{Uporaba kemičnih zaščitnih sredstev \phantom{This text will be invisible invisible invisiblee will be test test test test test testtt } }}
\newline
\newline
!kemija!
\newline
\newline
\colorbox{rumena} {\textbf{Obiskovanje solarija \phantom{This text will be invisible invisible invisiblee will be test test test test test tes dffffffffffffff ttttttt} }}
\newline
\newline
\nopagebreak
!solarij!

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -0,0 +1 @@
\end{document}