TejaR / APPR-2014-15

Repozitorij z gradivi za predmet Analiza podatkov s programom R v študijskem letu 2014/15
MIT License
0 stars 0 forks source link

Uvoz, grafi, poročilo #2

Closed jaanos closed 9 years ago

jaanos commented 9 years ago

Program se ti ustavi pri klicanju programa za risanje grafov, katerega ime je slike/Grafi.R - to velikost črk upoštevaj tudi, ko ga kličeš v glavnem programu.

Program lib/xml.r vključiš v glavnem programu - v njem imaš definirano funkcijo uvozi.nacin, ki pa je nikjer ne vključiš. Bolje bo, da ta program vključiš pred uvozom (ali znotraj njega), potem pa v uvoz/uvoz.r pokličeš to funkcijo. Tako boš lahko kasneje narisala tudi graf iz uvoženih podatkov.

Pred tem bo potrebno popraviti funkcijo uvozi.nacin, da bo delovala. Tako pridobivaš podatke od sedme vrstice do predzadnje:

seznam <- lapply(vrstice[7:length(vrstice)-1], stripByPath, "./td")

Sedaj bo pravilno naredilo matriko. Imena njenih stolpcev dobiš iz tretje vrstice, a bo potrebno izpustiti prvi stolpec (kjer so imena regij).

colnames(matrika) <- gsub("\n", " ", stripByPath(vrstice[[3]], ".//th")[-1])

V matriki so sama cela števila, tako da ni potrebno skrbeti za decimalne vejice. Imena vrstic dobiš iz istih vrstic kot same podatke:

return(data.frame(apply(matrika, 2, as.numeric),
         row.names = lapply(vrstice[7:length(vrstice)-1], stripByPath, "./th")))

Sedaj lahko v uvoz/uvoz.r (ob poprejšnji vključitvi programa lib/xml.r) pokličeš to funkcijo:

nacin <- uvozi.nacin()

Pri prvem grafu se ti legenda prekriva z grafom. Velikost pisave v legendi določiš tako, da parametru args.legend podaš vektor, ki ima velikost pisave podano v elementu z imenom cex. Za oznake lahko uporabiš kar letnice (brez začetnega X) - zanje imaš dovolj prostora, da jih lahko izpišeš kar vodoravno:

barplot(as.matrix(leta), names.arg = 2008:2013,
        beside = TRUE, legend = rownames(leta),
        args.legend = c(cex = 0.7))

S parametrom col lahko nastaviš tudi barve - te lahko dobiš npr. s funkcijo rainbow, ki ti vrne vektor barv mavrice želene dolžine.

Pri drugem grafu ti odreže nekatere oznake. Njihovo velikost lahko spremeniš s parametrom cex.names. Da ne bo potrebno oznak preveč zmanjšati, lahko v najdaljšo oznako dodaš prelom vrstice:

oznake <- rownames(invest)
oznake[8] <- "Jugovzhodna\nSlovenija"
barplot(apply(invest[-1,], 1, c), beside = TRUE, names.arg = oznake[-1], las = 2,
        legend = c("Pravne osebe", "Fizične osebe"), cex.names = 0.6)

Poročila ti ne prevede, ker URL-ji v poročilu vsebujejo znake, ki jih LaTeX uporablja za oblikovanje. V glavi poročila tako vključi paket url, potem pa URL-je podaj z ukazom \url. Vključi tudi paket pdfpages, da boš lahko z ukazom \includepdf vključila svoja grafa:

\includepdf[pages={1-2}]{../slike/grafi.pdf}

Pazi na zavite oklepaje pri navedbi strani - ker imaš le dve, ju seveda tudi toliko navedeš.

jaanos commented 9 years ago

Še to sem pozabil: v Grafi.R ti manjka ukaz dev.off(), da končaš risanje in ti tako grafe dejansko zapiše v datoteko PDF.

TejaR commented 9 years ago

Hvala za pomoč. Upam, da sem uspela odpraviti vse napake.