NIJZ radargraf poročilo (vsebinsko narejeno, potrebni še oblikovni porpavki)
This commit is contained in:
parent
ab71226f6c
commit
fd8250b18a
286
admin/survey/modules/mod_NIJZ/R/Nijz_report.R
Normal file
286
admin/survey/modules/mod_NIJZ/R/Nijz_report.R
Normal 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// -------------------------------#
|
||||
|
100
admin/survey/modules/mod_NIJZ/latexkosi/glava-nijz.tex
Normal file
100
admin/survey/modules/mod_NIJZ/latexkosi/glava-nijz.tex
Normal 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!
|
||||
|
BIN
admin/survey/modules/mod_NIJZ/latexkosi/logo/second_page.png
Normal file
BIN
admin/survey/modules/mod_NIJZ/latexkosi/logo/second_page.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.2 KiB |
BIN
admin/survey/modules/mod_NIJZ/latexkosi/logo/titlepage1.png
Normal file
BIN
admin/survey/modules/mod_NIJZ/latexkosi/logo/titlepage1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 70 KiB |
BIN
admin/survey/modules/mod_NIJZ/latexkosi/logo/titlepage2.png
Normal file
BIN
admin/survey/modules/mod_NIJZ/latexkosi/logo/titlepage2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 60 KiB |
1
admin/survey/modules/mod_NIJZ/latexkosi/z-noga.tex
Normal file
1
admin/survey/modules/mod_NIJZ/latexkosi/z-noga.tex
Normal file
@ -0,0 +1 @@
|
||||
\end{document}
|
Loading…
x
Reference in New Issue
Block a user