VZOROVÉ ŘEŠENÍ DOMÁCÍCH ÚKOLŮ DOMÁCÍ ÚKOL 1 A) Zjistěte, jak funguje příkaz sample. Využijte možnosti nápovědy a vyzkoušejte si jednoduchý příklad. B) Vytvořte vektor čísel 1 až 7 tak, aby výsledný vektor vypadal takto: [1] 111222333444555666777111222 3334445556 6 6 7 7 7 Nápověda: použijete funkci rep. help.search("sample") ??"sample" apropos("mean") example("sample") dmi <- rep(l:7,times=2,each=3); dmi DOMÁCÍ ÚKOL 2 A) Z vektoru k vytvořte za pomoci představených funkcí (předchozí strana) vektor C, který bude obsahovat textový řetězec: "Coffee is your only Caffeine". B) Zjistěte jak se budou lišit výstupy funkce substring v těchto případech: substring(k,8,8+11) substring(1,2,2+1) sub("hope","Caffeine",k) substring(k,8,8+11) substring(1,2,2+1) DOMÁCÍ ÚKOL 3 A) Vytvořte matici mat s rozměry 7x3, tak: Aby první řádek obsahoval posloupnost: -2, 2, 6, 10,... Druhý řádek tvořily hodnoty 13 a Třetí řádek měl minimální hodnotu - 3 a maximální 3 B) vypište sedmý sloupec matice mat jako: i) řádkový vektor a ii) jako sloupcový vektor C) využitím funkce cbind, vytvořte matici B tak, aby výsledek vypadal následujícím způsobem: [,2] [,3] [,4] [1,] -0.10000000 0.01111111 NA NA [2,] -0.07777778 0.03333333 NA NA [3t] -0.05555556 0.05555556 NA NA [4t] -0.03333333 0.07777778 NA NA [5,] -0.01111111 0.10000000 NA NA MAT <- matrix(c(seq(from=-2, by=4, length=7), rep(13, 7), length=7)), nrow=3, byrow=T); MAT MAT[,7] MAT[,7, drop=FALSE] Bl <- matrix(c(seq(from = - 0.1, to = 0.1, length = 10)), B2 <- matrix(NA, nrow=5, ncol=2); B2 cbind(B1,B2) seq(from=-3, to=3, nrow=5); Bl DOMÁCÍ ÚKOL 4 A) Dle tabulky 1 vytvořte data . frame S názvem Soubor. Snažte se údaje „slepě" nevypisovat, ale použijte funkce z kapitoly Vektory, výjimku tvoří poslední dva sloupce). B) Seřaďte objekt Soubor podle proměnné strana a vytvořte dva samostatné objekty: pravá obsahující pouze hodnoty pravé strany (dx) leva obsahující hodnoty pouze levé strany (sin) C) Objekty pravá, leva spojte dohromady podle proměnné id a proměnné sex do objektu Soubor_s. ID sex strana Hl Fl 1 f dx 35.3 49.7 1 f sin 35.4 49.7 2 f dx 32.3 47.5 2 f sin 32.5 47.9 3 f dx 37.1 53.7 3 f sin 37.3 53.2 4 m dx 29.8 44.4 4 m sin 31.5 44.4 5 m dx 28.4 43.2 5 m sin 27.5 44.1 6 m dx 30.7 46.3 6 m sin 30.9 45.8 Tab. 1 Soubor měření id <- rep(001:006, each =2); id sex <- rep(c("f","m"),each=6); sex strana <- rep(c("dx","sin"),times=6); strana Hl <- c(35.3,35.4,32.3,32.5,37.1,37.3,29.8,31.5,28.4,27.5,30.7,30.9); Hl Fl <- c(49.7,49.7,47.5,47.9,53.7,53.2,44.4,44.4,43.2,44.1,46.3,45.8); Fl Soubor <- data.frame(id, sex, strana, Hl, Fl) Soubor[order(strana),] pravá <- Soubor[strana=="dx",] leva <- Soubor[strana=="sin",] Soubor S <- merge(pravá, leva, by=c("id","sex")); Soubor S DOMÁCÍ ÚKOL 5 A) Z ISu si stáhněte data: du_5 . txt a načtěte je do RStudia (jméno proměnné zvolte libovolně). B) Zkontrolujte načtená data, případné chyby opravte. Při opravách chyb vycházejte z předpokladu, že hodnota s vyšším zastoupením je ta správná. C) Zjistěte dimenze načteného objektu a vypočítejte základní statistiky jednotlivých proměnných D) Vymažte prázdné sloupce (19 až 31). E) Vytvořte dva objekty DX a SIN: DX bude obsahovat pouze měření z pravé strany (Side bude dx) SIN bude obsahovat pouze měření z levé strany (Side bude sin) A spojte je dohromady do objektu DXSIN (note: funkce merge). F) Vypočítejte základní statistiky pro muže a ženy k rozměrům Fl. x, Fl. y. 2 # A DU5 <- read.table("du_5.txt", sep="\t", header = TRUE) attach(DU5) head(DU5) dim(DU5) dimnames(DU5) names(DU5) str(DU5) # B summary(DU5$Lokalita) levels(DU5$Lokalita)[levels(DU5$Lokalita) levels(DU5$Lokalita)[levels(DU5$Lokalita) summary(DU5$Lokalita) summary(DU5$Sex) levels(DU5$Sex)[levels(DU5$Sex) levels(DU5$Sex)[levels(DU5$Sex) summary(DU5$Sex) # C dim(DU5) summary(DU5) # D DU5[,19:31] <- NULL # E DX <- DU5[Side=="dx",] SIN <- DU5[Side=="sin",] DXSIN <- merge(DX, SIN, by=c("ID","Sex")) names(DXSIN) # F library(psych) describeBy(DXSIN[,c("Fl.x","Fl.y")], group=DXSIN[,"Sex"]) DOMÁCÍ ÚKOL 6 A) Vytvořte do samostatného okna graf všech typů bodů (pch), aby nebyl zobrazen rámeček grafu, osy (ani popis os) a ani popis grafu - budou zobrazeny pouze body. Barvu bodů vytvořte pomocí implementovaného vektoru rainbow () . Graf uložte jako .pdf soubor. B) Zobrazte vlastní koláčový graf (obdobně jako na straně: Grafické palety) a to tak, že zvolíte vlastní barvy, vypnete rámeček (border) grafu a zvolíte vlastní název. Labels grafu, bude prvních 10 písmen z implementovaného vektoru letters. Graf uložte jako . jpg soubor. Do ISu (odevzdávárna Domáci úkol 6) vložíte . R soubor s kódem a zároveň soubor .pdf a . jpg-vygenerované grafy. Všechny soubory pojmenujte jako UČO: UČO . R, UČO . pdf, UČO . jpg =="KOT"] <- "KOTL" =="VNN"] <- "VN" =="muz"] <- "m" =="z"] <- "f" 3 # A windows() plot(rep(0.5,26), pch = 0:25, axes = F, ann = F, frame.plot = F, col rainbow(26)) DU_05 - Obr. 1: Typy bodů # B pie(rep(1,10),col=c("#fdd8 35","#f9a825","#ffea00","#ffd600","#f57f17", "#ffab00", "#ffca28", "#ffcl07", "#ffb300", "#ff6f00"), lab=LETTERS[1:10], main = "Odstiny gumové kachničky", border = NA) Odstíny gumové kachničky - A DU_05 - Obr. 2: Koláčový graf odstínů barev gumových kachniček PROCVIČENÍ 1 maximum možných bodů: 10 minimální počet bodů pro uznání cvičení: 7 Pokyny: A) Dodržujte zásady správného kódování. B) R Script opatřete vhodně poznámkami. C) Dodržujte názvy objektů uvedených v zadání. D) Výsledný R Script vložte v podobě .R nebo .txt souboru do odevzdávárny s názvem ve tvaru: CV_01_UCO_Jmeno.R nebo CV_01_UCO_Jmeno.txt E) Cvičení není možné opravit, ale můžete využít možnosti konzultace. Zadání: 1) Vytvořte následující objekty: a. vektor ID o délce 100 z náhodného rozložení, jehož průměr m = 1700, směrodatná odchylka sd = 50 a vektor zaokrouhlete na celá čísla. [1 bod] b. faktor LOCATION o délce 100 náhodně za sebou jdoucích písmen E, F, G, H (z vektoru LETTERS písmena 5 až 8) [1 bod] c. matici HODNOTY o 100 řádcích a 10 sloupcích s hodnotami z intervalu 30 až 38 (zaokrouhlených na 2 desetinná místa). [1 bod] Nápověda k funkci na zaokrouhlení: round 2) Spojte objekty ID, LOCATION a HODNOTY do datové tabulky HUMERUS (Dejte si pozor, aby hodnoty objektu LOCATION byly písmena E, F, G, H, ne hodnoty 1 až 4). [2 body] 3) Do vektoru jméno uložte své jméno a příjmení (vektor jméno bude mít 2 prvky). Příslušnou funkcí zjistěte počet znaků obou prvků a vytvořte prázdnou (místo hodnot budou NA) matici MAT, kde se počet řádků rovná počtu znaků vašeho jména a počet sloupců se rovná počtu znaků vašeho příjmení. [2 body] 4) Načtěte soubor zkusebni_data. csv (vytvořený ze souboru zkusebni_data . xlsx) do objektu DATA a načtení dat zkontrolujte. a. Zobrazte hlavičku tak, aby vypsala pouze první 4 řádky tabulky (viz nápověda příslušné funkce) a obdobným způsobem zobrazte poslední 4 řádky tabulky. b. Zjistěte dimenze objektu. c. Zjistěte základní statistiky daného souboru. [3 body] 5 ### 1 ### ## a ID <- round(rnorm(100, mean = 1700, sd = 50), digits = 0) ID ## b LOCATION <- as.factor(sample(LETTERS[5:8], 100, replace=TRUE)) LOCATION # LOCATION <- factor(sample(LETTERS[5:8], 100, replace=TRUE)) ## c HODNOTY <- matrix(round(runif(1000, 30, 38) , digits = 2),100, 10) HODNOTY ### 2 ### LOCATION <- as.vector(LOCATION) HUMERUS <- as.data.frame(cbind(ID, LOCATION, HODNOTY)) HUMERUS # nebo HUMERUS <- data.frame(ID, LOCATION, HODNOTY) ### 3 ### jmeno <- c("Lenka", "Polcerova") nchar(jmeno) matrix(NA, nrow = 5, ncol = 9) DOMÁCÍ ÚKOL 7 A) Vytvořte boxplot jako je na obrázku vlevo. Zobrazovanou proměnnou je shoulderw. Dejte si pozor zejména na osy a jejich popis včetně směru textu. Můžete změnit typ bodů, popisy os (smysluplně) i barvy. B) Vytvořte histogram jako je na obrázku vpravo. Zobrazovanou proměnnou je opět shoulderw. Dejte si pozor, aby křivka četností byla v grafu kompletní (např. upravením rozsahu osy y). Můžete libovolně změnit barvy a popisy os (smysluplně). Shoulder_w of clavicule Histogram sirky claviculy 250 300 350 400 450 '-'-1-1-1 ° I-1-1-1-1 250 300 350 400 450 100 200 300 400 500 Categories délka [nm] DATA <- read.csv("06_data.csv", sep=";", header = TRUE) attach(DATA) str(DATA) # A windows() par(family = "serif", mar = c(4,4,7,4), oma=c(2,2,2,2)) boxplot(Shoulder w ~ Side:Sex, data=DATA, notch = T, col = c(rep("darkorchidl",2),rep("darkslategray3" , 2) ) , main = "Shoulder w of clavicule", ylab = "Shoulder w [mm]", xlab="Categories", cex = 2, pch = 20, axes=FALSE, ylim=c(250,450), border = c(rep("darkorchid4",2),rep("darkslategrey",2)), horizontal = TRUE) axis(4,at=2:3, labels = c("zeny","muzi"), las = 1) axis(2, tick = FALSE, las = 1) axis (3) axis(l, tck=-0.01) # B windows() par(family = "serif", mar = c(4,4,7,4), oma=c(2,2,2,2)) SIRKA <- na.omit(DATA$Shoulder_w) par(family="serif") hist(SIRKA, prob=TRUE ,col = "darkgoldenrodl", main = "Histogram sirky claviculy", xlab = "šiřka [mm]", ylab = "relativní četnost", ylim = c(0,0.015)) # note možnost jak zobrazi plny "roh" u bodu [0,0] box(which="plot",bty="l") axis(2, ylim = c(0:0.5)) lines(density(SIRKA), col="darkorange3", lwd=2) lines(density(SIRKA, adjust=2), lty="dotted", col = "darkgoldenrod4") 7 DOMÁCÍ ÚKOL 8 A) Vytvořte bodový graf jako je na obrázku. Zobrazovanou proměnnou je Lengthcl. Dejte si pozor, aby mřížka nepřekrývala body. Barvy můžete zvolit libovolně, stejně tak typy bodů. DATA <- read.csv("06_data.csv", sep=";", header = TRUE) attach(DATA) str(DATA) leva <- na.omit(DATA[Side == "sin",]) prava <- na.omit(DATA[Side == "dx",]) SINDX <- merge(leva, prava, by = "No_sub") attach(SINDX) windows() par(family="serif") plot(Length cl.x ~ Length cl.y, data = SINDX[Sex.x == "female",], pch=19, col="corall", xlab="Hodnoty pravé strany [mm]", ylab="Hodnoty levé strany [mm]", main = "Závislost proměnné Length cl levé a pravé strany", xlim = c(120,170), ylim = c(120,180)) grid(nx = NULL, ny = NULL, col = "slategray3", lty = "dotted", lwd = par("lwd"), equilogs = TRUE) points(Length cl.x ~ Length cl.y, data = SINDX[Sex.x == "female",], pch=19, col="corall", xlim = c(120,180), ylim = c(120,180)) points(Length cl.x ~ Length cl.y, data = SINDX[Sex.x == "male",], pch=19, col="deepskybluel", xlim = c(120,180), ylim = c(120,180)) mod f <- lm(Length cl.x ~ Length cl.y, data=SINDX[Sex.x == "female",]) mod m <- lm(Length cl.x ~ Length cl.y, data=SINDX[Sex.x == "male",]) abline(mod f, col="coral4", lwd=2, lty=6) abline(mod m, col="darkcyan", lwd=2, lty=6) legend(120,180,legend = c("Lineárni model ženy", "Lineárni model muži"), col = c("coral4","darkcyan"), lty = 6, cex = 0.8) graphics.off() DOMÁCÍ ÚKOL 9 A) Zobrazte bod bregma (B) pro jedince ze souboru data3d.opr.txt: obdobným způsobem jako bod glabella (G), tzn. muže a ženy zvlášť (odlište barvou). Změňte typ bodů (pomocí funkce: shapelist3d) Vypočítejte průměry a zobrazte je poloprůhledné Zobrazte elipsoidy pro 50% výskytu dat Uložte náhled okna jako . png soubor (zvolte vhodně úhel pohledu a velikost pole) Do ISu vložte . R script a obrázek .png ve tvaru: du_0 9_uco_Jméno. R/png. Výsledek může vypadat např. takto: DATA3D <- read.delim("07_data3d.txt", header = TRUE) attach(DATA3D) str(DATA3D) dim(DATA3D) DATA3D_f <- DATA3D[sex == "f",] DATA3D_m <- DATA3D [ sex == "m" , ] # vidime, ze mame souřadnice dvanácti bodu na lebce pro 58 jedinců # nejprve zobrazime glabellu (G) - a ideálně zvlast pro zeny a zvlast pro muze library(rgl) library(car) prumF_B_x <- mean(DATA3D_f$x.B) prumF_B_y <- mean(DATA3D_f$y.B) prumF_B_z <- mean(DATA3D_f$z.B) prumM_B_x <- mean(DATA3D_m$x.B) prumM_B_y <- mean(DATA3D_m$y.B) prumM B z <- mean(DATA3D m$z.B) open3d() par3d(windowRect=c(20, 30, 800, 800)) rgl.viewpoint(theta = 20, phi = 45, zoom = 1) shapelist3d(icosahedron3d(col = "firebrickl"), DATA3D_f$x.B,DATA3D_f$y.B,DATA3D_f$ z.B, data = DATA3D_f, size = 1) 9 shapelist3d(icosahedron3d(col = "deepskyblue"), DATA3 D_m$ x.B,DATA3 D_m$ y.B,DATA3 D_m$ z.B, data = DATA3D_m, size = 1) shapelist3d(icosahedron3d(col = "firebrick4"), prumF B x,prumF B y,prumF B z, size = 4, alpha = 0.5) shapelist3d(icosahedron3d(col = "deepskyblue4"), prumM B x,prumM B y,prumM B z, size = 4, alpha = 0.5) ellips_F <- ellipse3d(cov(cbind(DATA3D_f$x.B,DATA3D_f$y.B,DATA3D_f$z.B) ), centre=c(prumF B x,prumF B y,prumF B z), level = 0.50) wire3d(ellips_F, col = "deeppink", lit = FALSE) ellips_M <- ellipse3d(cov(cbind(DATA3D_m$x.B,DATA3D_m$y.B,DATA3D_m$z.B) ), centre=c(prumM B x,prumM B y,prumM B z), level = 0.50) wire3d(ellips_M, col = "cornflowerblue", lit = FALSE) rgl.snapshot("B ellipse3d.png",fmt = "png") 10 PROCVIČENI 2 maximum možných bodů: 10 minimální počet bodů pro uznání cvičení: 7 Pokyny: A) Dodržujte zásady správného kódování. B) R Script opatřete vhodně poznámkami. C) Dodržujte názvy objektů uvedených v zadání a pečlivě čtěte zadání. D) Výsledný R Script vložte v podobě .R nebo .txt souboru do odevzdávárny s názvem ve tvaru: CV_01_UCO_Jmeno.R nebo CV_01_UCO_Jmeno.txt E) Cvičení není možné opravit, ale můžete využít možnosti konzultace. F) Barvy a typy bodů u příslušných grafů volte individuálně. Načtěte do objektu data tabulku "procviceni_2. txt". Zkontrolujte správnost načtení a případné chyby opravte. Note: vycházejte z předpokladu, že častěji použité označení je správné. [0,5 b.] 2) Do objektu data vložte pouze hodnoty z Lokace=="Kotlarska" (chceme pouze ty hroby, které jsou momentálně dostupné na Kotlářské) a to tak, aby výsledný objekt neobsahoval na hodnoty. A zjistěte dimenze objektu. [0,5 b.] 3) Vypište základní statistiky pro rozměry Hl a Fl ze souboru data. [0,5 b.] 4) Nainstalujte si balíček reshape, v nápovědě zjistěte, jak funguje funkce melt a následně i její ekvivalent pro datové tabulky (melt. data. frame). Podle popisu použijte funkci melt na objekt data a to tak, že id.vars = c("Hrob", "Krabice", "Lokace", "Rok","Side") avariable name = "rozmer". Výsledný objekt nazvěte HIFI. A vypište názvy sloupců objektu HIFI. [1 b.] 5) Vytvořte na základě objektu HIFI boxplot jako je na obrázku 1. Note: pro text „nad boxploty" doporučuji využít funkci text. Rozměry Hl a Fl Rozložení dat 50 50 Obrázek 1 [2 b' 11 6) Vytvořte dva pomocné samostatné objekty: pravá (obsahující hodnoty pravé strany) a leva (obsahující hodnoty pouze levé strany) z původní načtené tabulky (objekt data), tzn. lokalita umístění hrobů nás momentálně nezajímá. Oba tyto objekty (pravá a leva) spojte dohromady podle proměnných: "Hrob", "Lokace", "Krabice", "Rok" do objektu SOUBOR. Výsledný objekt tak bude mít 11 řádků a 10 sloupců. Tento údaj ověřte příslušnou funkcí. Note: hodnoty spojujte tak, aby pro pravou stranu bylo .x a pro levou .y. [0,5 b.] 7) Pomocí objektů pravá a leva: vytvořte dvojici histogramů jako na obrázku 2 a to tak, aby se histogramy zobrazily vedle sebe v jednom okně. Note: do legendy vložte příhodný typ bodu (pch) a nezapomeňte nastavit rozsah os, jako je na obrázku. Pro rozměr Hl použijte parametr breaks = 7 a pro rozměr Fl použijte parametr breaks = 8. Histogram: Rozmer Hl Histogram: Rozmer Fl 42 44 RonněrFl Obrázek 2 [1 b.] 8) Pomocí objektů pravá a leva: vytvořte dvojici histogramů relativní četnosti jako na obrázku 3 a to tak, aby se histogramy zobrazily vedle sebe v jednom okně. Note: do legendy vložte příhodný typ bodu (pch) a nezapomeňte nastavit rozsah os, jako je na obrázku. Barvu křivek volte vhodným způsobem, aby bylo patrné, ke kterému histogramu patří. Pro rozměr Hl použijte parametr breaks = 7 a pro rozměr Fl použijte parametr breaks = 8. Obrázek 3 [i b.; 12 9) Pomocí objektu soubor vytvořte dvojici grafů jako na obrázku 4 a to tak, aby se zobrazily vedle sebe v jednom okně. Závislost rozmeru Hl levé a pravé strany Závislost rozmeru Fl levé a pravé strany 37 - fs' y j" s' +B - y 36 - - s y y y y 35 - s* y E y B 16 ~ y B y E y 34 - y y r • y y j y% i y * 33 - t í 44 - s* ■S y * = y M 32 - s' y y' , y • y 42 - y y • y 31 - s y y y 30 - y' 40 - y 29 30 i i i i i i 31 32 33 34 35 36 Hodnot1,' pravé strany [cm] 40 i i i i 42 44 46 48 Hodnoty pravé strany [cm] Obrázek 4 [1 b.; 10) Nakonec vytvořte graf jako na obrázku pět - závislost rozměru Fl na rozměru Hl s ohledem na stranu. Závislost rozměru Hl a Fl levé a pravé strany 30 1? v á pravá .........................it-;>y.....j—- V . /: / /s- /•V • / y / š /•s /y* • /X -0 4: i r~ 44 46 Fl [cm] Obrázek 5 -s í o [2 b.; 13 ### 1 ### DATA <- read.delim("procviceni_2.txt", sep="\t", header = TRUE) str(DATA) attach(DATA) summary(Lokace) levels(Lokace)[levels(Lokace)=="Kotl"] <- "Kotlářská" levels(Lokace)[levels(Lokace)=="Vid"] <- "Videnska" summary(Lokace) ### 2 ### data <- na.omit(DATA[Lokace=="Kotlarska", ] ) str(data) dim(data) ### 3 ### # install.packages("psych") library(psych) describe(data[,c("Hl","Fl") ] ) ### 4 ### # install.packages("reshape") library(reshape) ?melt ?melt.data.frame H1F1 <- melt(data, id.vars = c("Hrob", "Krabice", "Lokace", "Rok","Side"), variable name = "rozměr");H1F1 colnames(H1F1) ### 5 ### windows() par(family = "serif") boxplot(value ~ Side:rozměr, data=HlFl, col = c(rep("aquamarinel",2),rep("darkseagreenl",2)), las = 1, border = c(rep("aquamarine4",2),rep("darkseagreen4",2)), axes=FALSE, main = "Rozměry HI a Fl", ylim = c(25,55)) axis(l,at=2:3, labels = c("HI","Fl")) axis (2, las = 1) axis(4, las = 1) text(x=c(l,2), y=38, labels = c("dx","sin"), col = "darkslategray4", font = 3) text(x=c(3,4), y=52, labels = c("dx","sin"), col = "darkseagreen4", font = 3) mtext("Rozloženi dat", side = 3, font = 3, line = 0.5) ### 6 ### prava <- na.omit(DATA[Side=="dx",]) leva <- na.omit(DATA[Side=="sin",]) SOUBOR <- merge(prava, leva, by=c("Hrob", "Lokace", "Krabice", "Rok")); SOUBOR # attach(SOUBOR) dim(SOUBOR) ### 7 ### library(scales) windows(width=15, height=7) par(family = "serif", mfrow=c(1,2)) hist(leva$Hl, breaks = 7, col=alpha("darkorchidl",0.5), xlim = c(26,38), ylim = c(0,6), main = "Histogram: Rozměr HI", xlab = "Rozměr HI", ylab = "četnost", las = 1) hist(prava$Hl, add = TRUE, breaks = 7, col=alpha("forestgreen",0.5), xlim = c (26, 38), ylim = c(0,6) ) legend(34.8, 6, legend = c("levá","pravá"), pch = 15, col=c(alpha("darkorchidl",0.5),alpha("forestgreen",0.5))) hist(leva$Fl, breaks = 8, col=alpha("darkorchidl",0.5), xlim = c(38,50), ylim = c(0,6), main = "Histogram: Rozměr Fl", xlab = "Rozměr Fl", ylab = "četnost", las = 1) hist(prava$Fl,add = TRUE, breaks = 8, col=alpha("forestgreen",0.5), xlim=c(38,50), ylim = c(0,6)) legend(48.5, 6, legend = c("levá","pravá"), pch = 15, col=c(alpha("darkorchidl",0.5),alpha("forestgreen",0.5))) graphics.off() ### 8 ### windows(width=15, height=7) par(family = "serif", mfrow=c(1,2)) hist(leva$Hl, breaks = 7, col=alpha("darkorchidl", 0.5), xlim = c(26, 38), ylim = c(0, 0.4), main = "Rozměr HI", probability = TRUE, xlab = "Rozměr HI", ylab = "relativní četnost", las = 1) lines(density(leva$Hl), lty=l, col = "darkorchidl") hist(prava$Hl,add = TRUE, breaks = 7, col=alpha("forestgreen", 0.5), xlim=c(26, 38), ylim = c(0, 0.4), probability = TRUE) lines(density(prava$Hl), lty=l, col = "forestgreen") legend(34.8, 0.4, legend = c("levá","pravá"), pch = 15, col=c(alpha("darkorchidl", 0.5),alpha("forestgreen", 0.5))) hist(leva$Fl, breaks = 8, col=alpha("darkorchidl", 0.5), xlim = c(38, 50), ylim = c(0, 0.4), main = "Rozměr Fl", probability = TRUE, xlab = "Rozměr Fl", ylab = "relativní četnost", las = 1) lines(density(leva$Fl), lty=l, col = "darkorchidl") hist(prava$Fl,add = TRUE, breaks = 8, col=alpha("forestgreen", 0.5), xlim=c(38, 50), ylim = c(0, 0.4), probability = TRUE) lines(density(prava$Fl), lty=l, col = "forestgreen") legend(48.5, 0.4, legend = c("levá","pravá"), pch = 15, col=c(alpha("darkorchidl", 0.5),alpha("forestgreen", 0.5))) graphics.off() ### 9 ### windows(width=15, height=7) par(family = "serif", mfrow=c(1,2)) plot(HI.x ~ Hl.y, data = SOUBOR, pch=19, col="seagreenl", xlab="Hodnoty pravé strany [cm]", ylab="Hodnoty levé strany [mm]", main = "Závislost rozměru HI levé a pravé strany", xlim = c(29,36), ylim = c(30, 37) , las = 1) mtext("Proloženi lineárním modelem", side = 3, font = 3, line = 0.5) mod <- lm(Hl.x ~ Hl.y, data = SOUBOR) summary(mod) abline(mod, col="darkslategrey", lwd=2, lty=6) plot(Fl.x ~ Fl.y, data = SOUBOR, pch=19, col="seagreenl", xlab="Hodnoty pravé strany [cm]", ylab="Hodnoty levé strany [mm]", main = "Závislost rozměru Fl levé a pravé strany", xlim = c(40,49), ylim = c (40, 49), las = 1) mtext("Proloženi lineárním modelem", side = 3, font = 3, line = 0.5) mod <- lm(Fl.x ~ Fl.y, data = SOUBOR) 15 summary(mod) abline(mod, col="darkslategrey", lwd=2, lty=6) graphics.off() ### 10 ### windows() par(family = "serif") plot(HI ~ Fl, data = leva, pch=19, col="olivedrab2", xlab="Fl [cm]", ylab="Hl [cm]", main = "Závislost rozměru HI a Fl levé a pravé strany", las = 1) grid(nx = NULL, ny = NULL, col = "slategray3", lty = "dotted", lwd = par("lwd"), equilogs = TRUE) points(HI ~ Fl, data = leva, pch=19, col="olivedrab2") points(HI ~ Fl, data = prava, pch=19, col="orangel") mod leva <- lm(Hl ~ Fl, data = leva) mod prava <- lm(Hl ~ Fl, data = prava) abline(mod leva, col="olivedrab3", lwd=2, lty=6) abline(mod prava, col="orange3", lwd=2, lty=6) legend(40,35,legend = c("levá", "pravá"), col = c("olivedrab3","orange3"), lty = 6, cex = 0.8) graphics.off() 16 17