NMSA230 - Úvod do programování v R
III. Grafické nástroje v programe
R
Program R (dostupný pod GNU GPL licenciou) je k dispozícii k
stiahnutiu (free of charge) na adrese:
https://www.r-project.org
K dispozícii sú distribúcie s priamou podporou pre OS Windows, Linux
aj Macintosh.
Základnú inštaláciu programu R je možne jednoducho rozšíriť pomocou
dodatočných knižníc (balíčkov), ktoré sú k dispozícii na rôznych online
repozitároch (zoznam hlavných repozitárov je na adrese
https://cran.r-project.org/mirrors.html).
Jednotlivé R knižnice sú tvorené samotnými užívateľmi softwaru R a ich
správne fungovanie nie je garantované – je preto namieste určitá
opatrnosť a hlavne aktívne premýšľanie pri ich používaní a implementácii
jednotlivých funkcii.
Pre užívateľov programu R sú k dispozícii aj rôzne grafické
rozhrania, ktoré je možne dodatočne nainštalovať a umožňujú (v určitých
smeroch) jednoduchšiu a prehľadnejšiu prácu. Najznámejší a pravdepodobne
aj najviac používaný je
RStudio.
Užitočné materiály pre prácu so štatistickým programom
R
-
Bína, V., Komárek, A. a Komárková, L.: Jak na jazyk R.
(PDF súbor)
-
Komárek, A.: Základy práce s R. (PDF
súbor)
-
Kulich, M.: Stručný úvod do R. (PDF
súbor)
-
Scott, T.: An Introduction to R
(PDF súbor)
-
De Vries, A. a Meys, J.: R for Dummies. (ISBN-13: 978-1119055808)
Stručný program trietieho semináru NMSA 230
-
Oboznámenie sa so základnými nástrojmi a niektorými R funkciami, ktoré
sú v programe R určené k vytváraniu grafických výstupov (ilustrácie,
vizualizácia dat, obrázky, grafy – scatterploty, boxploty, diagramy,
atď.).
-
Využitie grafických nástrojov pre jednoduchú exploratívnú analýzu za
účelom vhodného doplnenia základných popisných charakteristík.
-
Podrobnejší “sprievodca” pre jednoduchú prácu s programom R:
Hrátky s R (autor:
doc. Arnošt
Komárek).
(k Hrátkam s R sú potrebné datove súbory:
auta2004.dat,
auta2004.csv a
auta2004.xls)
1. Základné grafické nástroje v programe
R
V programe R je k dispozícii veľký výber rôznych funkcii a príkazov
určených k vytváraniu variabilných grafických výstupov. Dalšíe dodatočné
možnosti (vo forme doplňujúcich príkazov a funkcií) je možne získať pri
rozšírení štandardnej inštalácie nainštalovaním dodatočných balíčkov
(packages) – tie sú väčšinou špecificky zamerané na konkrétnu oblasť,
balíček často poskytuje komplexnú sadu nástrojov na riešenie určitého
špecifického problému – napr. niekoľko konkrétnych možností na
tejto
stránke, alebo podrobný zoznam štandardných funkcii v rámci knižnice
Graphics napr.
tu.
Okrem toho je samozrejme možné vytvárať vlastné príkazy a funkcie a
defaultné grafické nástroje (t.j., existujúce funkcie) v programe R v
mnohých smeroch mierne modifikovať, alebo úplne zmeniť (vylepšiť,
zdokonaliť). Grafické funkcie v programe R možeme podľa spôsobu ich
fungovania začleniť do troch základných kategórii:
-
Funkcie, ktoré vytvárajú nové grafické
rozhranie Pri volaní ktorejkoľvek fukcie z tejto
kategórie automaticky dôjde k vytvoreniu nového grafického okna (graph
window) v ktorom sa vykresli samotný výsledný obrázok (graf). Toto okno
je ponechané ako aktívne a pomocou ďalších funkcii z druhej skupiny (viď
nižšie) je možné dopĺňať ďalšie objekty do už existujúceho obrázku,
prípadne meniť rôzne nastavenia a vlastnosti.
Základné príkazy (napr.): plot() ,
dotchart() , image() , curve() ,
hist() , barplot() , pie() ,
boxplot() , pairs() , persp() ,
atď.;
-
Funkcie, ktoré dopĺňajú již vytvorený
graf Do druhej kategórie patria funkcie a príkazy, ktoré
fungujú len v prípade, že bola pred ich použitím zavolaná nejaké
funkcia z prvej kategórie a bolo tak vytvorené grafické okno, ktoré je
ponechané stále aktívne. Pomocou príkazov a funkcii z tejto kategórie je
možné dopĺňať ďalšie (často netriviálne) objekty do už existujúceho
grafu (grafického okna - graph window).
Základné príkazy (napr.): points() , lines() ,
abline() , text() , polygon() ,
segments() , title() , legend() ,
atď.;
-
Funkcie určené na manipuláciu s grafmi a
grafickými oknami Do tejto kategórie patria funkcie a
príkazy, ktoré primárne nie sú schopné vytvárať obrázok, ani dopĺňať
objekty do už existujúceho obrázku, ale služia na základnú manipuláciu s
vytvorenými grafickými oknami (napr. uloženie vykresleného obrázku do
rozných typov súboru, kombinácia a rozloženie niekoľkýh grafov v jednom
grafickom okne, vytvorenie nového okna, zatvorenie aktívneho okna a
pod.)
Základné príkazy (napr.): dev.new() , X11() ,
dev.off() , postscript() , pdf() ,
png() , par() , layout() ,
split.screen() , atď.;
Pomocou R helpu postupne zistíte, k čomu jednotlivé príkazy a funkcie
slúžia, ako sú implementované, aké dodatočné parametre je možné pri
volaní danej funkcie využiť a každú z uvedených funkcii použijte aspoň v
jednom grafe, ktorý vytvoríte samostatne.
Niekoľko názorných príkladov, ktoré využívajú niektoré z uvedených
funkcii, sú uvedené nižšie. Všimnite si aj úlohu dodatočných parametrov,
ktoré sa pri volaní konkrétnej funkcie spomínaju. Zaujímavé “demo” pre
ilustráciu základných grafických nástrojov v programe R je možné v
konzole spustiť pomocou príkazu demo("graphics") .
Kvalitný obrázok (graf), ktorý je vhodný na použitie v reporte,
alebo prezentácii, nie je takmer nikdy možné získať pouze jednoduchým
zavolaním defaultnej funkcie (v programe R, ale ani iných softwarových
nástrojoch). Väčšinou je potrebná dodatočná práca s vytvorením vhodného
popisku k jednotlivých osách, prípadne dostatočne podrobnou legendou,
ktorá pomôže pri celkovom porozumení vyobrazeného grafu. Napriek tomu,
že graf/obrázok je často iba dvojrozmerný objekt, nemusí nutne
obsahovať/zobrazovať pouze dvojrozmernú informáciu.
Príklad 1 | datový súbor ‘mtcars’
Datový súbor ‘mtcars’, ktorý je štandardne k dispozícii v klasickej
inštalácii programu R, obsahuje údaje o 32 rôznych automobiloch
predávaných v USA (typ auta, motoru, spotreba, atď.). Zaujíma nás
spotreba auta – premenná označená ako mpg (miles per
gallon) a chceme graficky zobraziť niektoré základne charakteristiky o
tejto premennej (graficky preskúmať štruktúru dat).
Defaultné použitie základnej funkcie plot() by vyzeralo
takto:
plot(mtcars$mpg)

Takýto obrázok ale poskytuje len hodne obmedzenú informáciu o
samotnej podstate a charaktere dat. Graf je preto potrebné vo viacerých
ohľadoch vylepšiť – to znamená, dostať do grafu viac podstatnej, alebo
zaujímavej informácie. Jedna z možností (je ich samozrejme viac-menej
neobmedzené množstvo) je napríklad takáto:
x <- mtcars[order(mtcars$mpg),] # sort by mpg
x$cyl <- factor(x$cyl) # it must be a factor
x$color[x$cyl==4] <- "red"
x$color[x$cyl==6] <- "blue"
x$color[x$cyl==8] <- "darkgreen"
dotchart(x$mpg,labels=row.names(x),cex=.7,groups= x$cyl,
main="Gas Milage for US Car Models\n grouped by the number of cylinder",
xlab="Consumption [Miles Per Gallon]", gcolor="black", color=x$color)
c4 <- mean(mtcars$mpg[mtcars$cyl == 4])
c6 <- mean(mtcars$mpg[mtcars$cyl == 6])
c8 <- mean(mtcars$mpg[mtcars$cyl == 8])
lines(c(c8, c8), c(1, 14), col = "darkgreen", lwd = 2)
lines(c(c6, c6), c(17, 23), col = "blue", lwd = 2)
lines(c(c4, c4), c(26, 36), col = "red", lwd = 2)

Vytvorený graf určitým spôsobom vizualizuje jednotlivé pozorovania
(všetky uvažované automobily) a niektoré ich charakteristiky (napr.
spotrebu alebo počet válcov). Zároveň poskytuje aj určitú sumarizačnú
informáciu – konkrétne sa jedná o uvedené priemerné spotreby troch typov
(kategórii) aut.
Robustnejšie (sumarizačné) charakteristiky dostaneme napr. pomocou
príkazu boxplot() , v ktorom zohľadníme tri rozličné
kategórie podľa celkového počtu válcov v danom aute – premenná označená
ako cyl .
boxplot(mpg ~ cyl, col = c("red", "blue", "darkgreen"), data = mtcars, xlab = "Počet válcov", ylab = "Spotreba [miles per gallon]")

Alternatívný náhľad na štruktúru celkového datového súboru dostaneme
prostredníctvom matice scatterplotov, pomocou príkazu
pairs() a s využitím niektorých ďalších (numerických, resp.
spojitých) premenných:
pairs(mtcars[,c(1,3,4,6)], col=mtcars$cyl, pch = mtcars$am)

Sofistikovanejšie verzie aj s odhadom hustoty a regresnej závislosti
možeme konštruovať pomocou knižnice library(car) a príkazu
scatterplot.matrix() :
panel.hist <- function(x, ...)
{
usr <- par("usr"); on.exit(par(usr))
par(usr = c(usr[1:2], 0, 1.5) )
h <- hist(x, plot = FALSE)
breaks <- h$breaks; nB <- length(breaks)
y <- h$counts; y <- y/max(y)
rect(breaks[-nB], 0, breaks[-1], y, col = "cyan", ...)
}
panel.cor <- function(x, y, digits = 2, prefix = "", cex.cor, ...)
{
usr <- par("usr"); on.exit(par(usr))
par(usr = c(0, 1, 0, 1))
r <- abs(cor(x, y))
txt <- format(c(r, 0.123456789), digits = digits)[1]
txt <- paste0(prefix, txt)
if(missing(cex.cor)) cex.cor <- 0.8/strwidth(txt)
text(0.5, 0.5, txt, cex = 2)
}
pairs(~mpg+disp+drat+wt + cyl, data=mtcars, lower.panel=panel.smooth, upper.panel = panel.cor, diag.panel = panel.hist, pch = 21)

Existujú samozrejme mnohé iné možnosti a ďalšie grafiké nástroje v
Rku, pomocou ktorých vytvoriť ‘case-specific’ obrázky a grafy. Hlavný
dôraz je pritom kladený na vizuálnu stránku, graf by mal dostatočne
názorne zobrazovať podstatnú štruktúru datového súboru.
V prípade menšieho počtu premenných je celkom zaujímavou možnosťou aj
zobrazenie marginálnych hustot pre nejaké dve konkrétne veličíny (z
dôvodu obmedzeného vnímania viac-rozmerných grafov sa väčšinou nepoužíva
viac, ako dve veličiny súčastne):
library(MASS)
library("RColorBrewer")
colors <- brewer.pal(5, "Reds")
z <- kde2d(mtcars[,1], mtcars[,4], n=5)
plot(mtcars[,c(1,4)], xlab="Miles per Galon", ylab="Horse Power", pch=21, bg = "yellow")
contour(z, drawlabels=FALSE, nlevels=4, col=colors, add=TRUE)

Knižnica MASS je potrebná k spočítaniu jadrového odhadu
dvojrozmernej hustoty (príkaz kde2d() ) a knižnica
RColorBrewer je potrebná na vytvorenie farebnej palety,
podľa ktorej sú vyfarbené kontúry.
Komplexnejší obrázok s dvoma rôznymi osami y (ľavá os y pre celkovú
spotrebu a pravá os y pre výkon).
par(mar = c(5, 4, 4, 4) + 0.3)
x <- mtcars$wt
plot(mtcars$mpg ~ x, data = mtcars, pch = 21, bg = "lightblue", cex = 0.8, xlim = c(1, 5.5), xlab = "Celková hmotnosť", ylab = "")
lines(lowess(mtcars$mpg ~ mtcars$wt), col = "black", lwd = 2)
mtext("Spotreba [miles per gallon]" ,side=2,line=3, col = "black")
axis(2,col="black",col.axis="black")
par(new=TRUE)
plot(mtcars$hp ~ x, axes = FALSE, bty = "n", xlab = "", ylab = "", type = "p", col ="red", ylim = c(min(mtcars$hp), max(mtcars$hp)), lwd = 2, cex = 0.5, xlim = c(1, 5.5))
lines(lowess(mtcars$hp ~ x), col = "red", lwd = 2)
axis(4,col="red" ,col.axis= "red")
mtext("Výkon [horse power]",side=4,line=3, col = "red")
for (i in 1:50){
lines(c(1 + i * 4.5/50, 1 + i * 4.5/50), c(50, 340), col = "gray")
}

Boxploty
Predstavu o štruktúre datového súboru získame (aj keď len v určitej
obmedzenej miere) aj pomocou boxplotov, ako už bolo ukázane pre celkovú
spotrebu v závislosti na počte válcov. Boxploty však môžu obsahovať aj
komplexnejšiu informáciu o nejakej veličine, resp. o nejakých
veličinách.
boxplot(mpg ~ cyl, col = brewer.pal(3, "Blues"), xlab = "number of cylinders", ylab = "miles per galon", main= "", data = mtcars)

prípadne verzia, ktorá zohľadňuje dve rôzne kategorické premenné (v
tomto konkrétnom prípade spotrebu udávanu v míľach prejdených na jeden
galón a identifikátor automatickej prevodovky: Automatic = 0 a
Manual = 1).
boxplot(mpg ~ cyl + am, col = c(brewer.pal(3, "Greens"), brewer.pal(3, "Blues")), xlab = "No. of cylinders (vs.) Auto Transmission Indicator", data = mtcars)

Alebo dokonca zložitejší prípad zobrazujúci spotrebu v závislosti na
dvoch rôznych faktoroch a 95% konfidenčným intervalom pre skutočnú
hodnotu médianu (s voľbou parametru notched = TRUE ).
boxplot(mpg ~ cyl * am, col = c(brewer.pal(3, "Greens"), brewer.pal(3, "Blues")), xlab = "Number of Cylinders", ylab = "Miles per Galon | Automatic Transmission", main= "", notch = T, data = mtcars)

Alebo celkom sofistikovany ‘histogram’, ktorý inkorporuje aj odhad
hustoty (pomocou príkazu vioplot() z knižnice
‘vioplot’.
library(vioplot)
x1 <- mtcars$mpg[mtcars$cyl==4]
x2 <- mtcars$mpg[mtcars$cyl==6]
x3 <- mtcars$mpg[mtcars$cyl==8]
vioplot(x1, x2, x3, names=c("4 cyl", "6 cyl", "8 cyl"), col="gold")
title("Violin Plots of Miles Per Gallon")

S využitím dodatočnej knižnice MASS je možné zavolať
funkciu parcoord() ktorá je užitočna, keď chceme vizuálne
posúdiť mieru korelácie medzi jednotlivými sledovanými premennými. Ako
by ste nasledujúci graf interpretovali? Resp. aké závery je možné z
tohto grafu vyvodiť?
library(MASS)
attach(mtcars)
colorVector <- rep("brown", dim(mtcars)[1])
colorVector[am == 0] <- "brown1"
colorVector[cyl == 6] <- "blue4"
colorVector[cyl == 6 & am == 0] <- "blue1"
colorVector[cyl == 4] <- "darkgreen"
colorVector[cyl == 4 & am == 0] <- "green"
parcoord(mtcars, col = colorVector, lty = gear)

Príklad 2 | datový súbor ‘Orange’
V druhom príklade použijeme datový súbor ‘Orange’, s ktorým sme už
pracovali. V datasete sú zaznamenané informácie o piatich druhoch
pomarančovníkoch – zaznamenávame vek stromu v dňoch a priemer kmeňa v
centimetroch.
Najprv využijeme štandardný príkaz plot() a následne sa
pokusíme graf vylepšiť pomocou využitia informácie, ktorú o datach máme
(viď R help ?Orange ) a dodatočných funkcii z druhej
kategórie, prípadne niektorých prametrov, pomocou ktorých sú jednotlivé
funkcie implementováne.
plot(Orange[,"circumference"] ~ Orange[,"age"])

A teraz vylepšená (snáď krajšia) verzia toho istého grafu:
plot(0,0, xlim = c(0, 1800), ylim = c(0, 250), pch = "",
xlab = "age [days]", ylab = "circumference [cm]", main = "Orange Trees")
for (i in 1:5){
points(Orange[Orange[,1] == i,3] ~ Orange[Orange[,1] == i,2], pch = 21, bg = i)
lines(Orange[Orange[,1] == i,3] ~ Orange[Orange[,1] == i,2], col = i)
}
legend(0, 250, legend = c("Tree type #1", "Tree type #2", "Tree type #3", "Tree type #4", "Tree type #5"),
col = "black", bg = "lightgray" , pch = 21, lty = c(1,1,1,1,1), pt.bg = 1:5)

Príklad 3 | multiple plot output
Pomocou príkazov par() a layout() je možné
kombinovať niekoľko grafov/obrázkov v jednom grafickom okne.
par(mfrow = c(1,2))
hist(Orange[,"circumference"], col = "lightblue", xlab = "Circumference [cm]", ylab = "Frequency", freq = F, main = "")
lines(density(Orange[,3]), col = "red", lwd = 2, lty = 2)
barplot(Orange[,3], col = sort(rep(1:5,7)), xlab = "Measurements by Trees", ylab = "Circumference [cm]")

Užitočné
Program R poskytuje obrovskú škálu nástrojov a funkcii k vytváraniu a
modifikovaniu grafickych výstupov. Ako názorná ukážka rôzných možnosti,
ktoré sú k dispozícii, môže poslúžiť jednoduché demo, ktoré je defaultne
k dispozícii v Rku pod príkazom demo("graphics") .
Analogickym spôsobom funguje demo ku všetkym knižniciam, ktoré su v
Rku nainštalované (príkaz demo() a následne
demo("***") , kde namiesto *** je potrebné
dopĺniť názov príslušného balíčku - package.
Každá zo spomínaných funkcii je implementována s dodatočnými
parametrami, ktore menia jej defaultne nastavenie a ovplyvňujú finálny
vysledok výsledného grafu (viď help k príslušnej funkcii). Je dôležité
tieto parametre poznať a náležite ich pri práci aj využívať.
2. Obrázky a grafy pre kategorické
premenné
V prípade práce s kategorickými premennými je užitočné uvažovať nad
grafmi, ktoré poskytnú informáciu o zastúpení jednotlivých kategórii -
teda relatívne počty. K tomuto účelu je v programe R niekoľko funkcii.
Príklad 3 | datový súbor ‘MplsStops’ (knižnica
‘carData’)
Data obsahujú informáciu o zastavených vodičoch políciou v
Mineapolise v USA v roku 2017 (viď R help k príslušným datam).
library("carData")
table(MplsStops$race)
##
## Black White Unknown East African Latino
## 15220 11703 9219 2188 1858
## Native American Other Asian
## 1516 1348 647
library("RColorBrewer")
colors <- brewer.pal(8, "Reds")
par(mfrow = c(1,2))
pie(table(MplsStops$race), col = colors)
barplot(table(MplsStops$race), col = colors)

Užitočné
-
Funkcia
barplot() aj funkcia pie() majú v R
širšie využitie a konkrétna implementácia závisí na hodnotách
voliteľných parametroch.
-
S pomocou R helpu k jednotlivých funkciám vyskúšajte použitie na
vlasných datach.
3. Príprava obrázkov do
reportu/prezentácie
Z datovych súborov, ktoré sú defaultne k dispozícii v štandardnej
inštalácii programu R (príkaz data() ) si vyberte jeden
datový súbor a pomocou grafických nástrojov zostrojte niekoľko obrázkov,
ktoré nejakým spôsobom vypovedajú o nameraných hodnotách. Pomocov
dvojice príkazov pdf() a dev.off() získame
výsledný grafický výstup vo foprmáte PDF (ktorý sa automaticky vytvorí
pri volaní funkcie pdf() a ukonči/zprístupni volaním
funkcie dev.off() na záver).
pdf("obrazok1.pdf", width = 6, height = 4)
par(mfrow = c(1,2))
hist(Orange[,"circumference"], col = "lightblue", xlab = "Circumference [cm]", ylab = "Frequency", freq = F, main = "")
lines(density(Orange[,3]), col = "red", lwd = 2, lty = 2)
barplot(Orange[,3], col = sort(rep(1:5,7)), xlab = "Measurements by Trees", ylab = "Circumference [cm]")
dev.off()
Pre prácu s LaTeXom je užitočné poznať aj príkaz na vytvorenie
obrázku/grafu vo vektorovej grafike, ktorý je všeobecne kvalitnejší.
Slúži k tomu príkaz postscript() . Dodatočné grafické
parametre sú totožné, ako pri vytváraní výstupov vo formáte PDF, teda
príkaze pdf() :
postscript("obrazok1.eps", width = 6, height = 4)
par(mfrow = c(1,2))
hist(Orange[,"circumference"], col = "lightblue", xlab = "Circumference [cm]", ylab = "Frequency", freq = F, main = "")
lines(density(Orange[,3]), col = "red", lwd = 2, lty = 2)
barplot(Orange[,3], col = sort(rep(1:5,7)), xlab = "Measurements by Trees", ylab = "Circumference [cm]")
dev.off()
Užitočné
-
Ako už bolo uvedené, v programe R je k dispozícii celá škála rôznych
balíčkov a knižníc, z ktorých su mnohé venované aj grafike. Podrobnosti
sú napr. na webovej stranke
http://www.r-graph-gallery.com.
-
Väčšína z uvedených príkladov vyžaduje inštaláciu potrebnej knižnice
(package) - inštalácia pomocou príkazu
install.packages() a
následna inicializácia knižnice pomocou príkazu library() .
-
V niektorých prípadoch je nutné použiť a uložiť obrázok aj s
embedovanými fontami (napríklad PDF/A-1 compliant dokument – bakalárska,
alebo diplomová práca). To sa dá dosiahnúť pomocou funkcie
cairo() , z rovnomennej
R
knižnice Cairo.
4. Knižnica ggplot2
Alternatívu ku klasickým grafickým nástrojom, ktoré sú k dispozícii v
programe R, ponúka dodatočna knižnica ggplot2 , ktorú
naištalujete a inicializujete štandardnými príkazmi
install.packages("ggplot2")
library(ggplot2)
Základnou funkciou v tejto knižnici je funkcia qplot() ,
ktorá na rozdiel od štandardnej funkcie plot() , ponúka
ďaleko väčšie možnosti pri vytváraní grafov a obrázkov (pozri help
?qplot() ).
V datovom súbore mtcars najprv upravíme niektoré
premenné - faktorizujeme ich a priradíme príslušne názvý jednotlivých
úrovni.
mtcars$gear <- factor(mtcars$gear,levels=c(3,4,5), labels=c("3gears","4gears","5gears"))
mtcars$am <- factor(mtcars$am,levels=c(0,1), labels=c("Automatic","Manual"))
mtcars$cyl <- factor(mtcars$cyl,levels=c(4,6,8), labels=c("4cyl","6cyl","8cyl"))
Následne už možeme použiť funkciu qplot() a vykresliť
odhad hustoty pre spotrebu (miles per gallon) v závislosti na počte
prevodových stupňov (premenná gear ).
qplot(mpg, data=mtcars, geom="density", fill=gear, alpha=I(.5), main="Distribution of Gas Milage", xlab="Miles Per Gallon", ylab="Density")
## Warning: `qplot()` was deprecated in ggplot2 3.4.0.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Pomocou tej istej funkcie qplot() , ale s inou voľbou
parametru geom = "..." , je možne celkovo meniť vzhľad a typ
výsledného grafu.
qplot(gear, mpg, data=mtcars, geom=c("boxplot", "jitter"), fill=gear, main="Mileage by Gear Number", xlab="", ylab="Miles per Gallon")

Prípadne vykresliť regresnú závislosť spotreby na váhe automobilu (aj
s príslušnými pásmi spoľahlivosti pre regresnú přímku).
qplot(wt, mpg, data=mtcars, geom=c("point", "smooth"), method="lm", formula=y~x, color=cyl, main="Regression of MPG on Weight", xlab="Weight", ylab="Miles per Gallon")

Užitočné
Knižnica ggplot2 funguje na princípe postupných vrstiev
(layers), v ktorých sa vykresľuje výsledný graf. Jednotlivé vrstvy sa
prídávajú pomocou vhodných príkazov, ako napr.
geom_points() , geom_abline() ,
geom_area() geom_bar() ,
geom_contour() , geom_polygon() , atď. (zoznam
napr. na stránke
http://sape.inf.usi.ch/quick-reference/ggplot2/geom).
Jednoduchý príklad s využitím niekoľkých vrstiev:
dataSum <- plyr::ddply(mtcars, "gear", plyr::summarise, mean = mean(mpg), sd = sd(mpg))
ggplot() +
geom_point(data = mtcars, aes(x = gear, y = mpg)) +
geom_point(data = dataSum, aes(x = gear, y = mean), colour = 'red', size = 3) +
geom_errorbar(data = dataSum, aes(x = gear, y = mean, ymin = mean - sd, ymax = mean + sd), colour = 'red', width = 0.4) +
ggtitle("Car consumption summary given the number of gears")

5. Niektoré ďalšie možnosti
Na záver len niekoľko stručných odkazov na niektoré zaujímavé R
knižnice určené pre tvorbu grafických výstupov v programe R – aj s
názornými ukážkami a príslušnými zdrojovými kódmi (možné stiahnúť a
používať).
A samozrejme na internete nájdete mnoho ďalších…
Domáca úloha
(Deadline: 4. cvičenie | Po: 18.11.2024)
Použijte datový súbor, ktorý ste si vygenerovali vrámci
predchadzajúcich samostatných úkolov. Uvažujte popisné charakteristiky,
ktoré ste si zvolili a spočítali a doplňte tieto výberové
charakteristiky vhodnými obrázkami/grafmi.
-
Vytvorte aspoň jeden graf zobrazujúci scatterplot bodov. Graf vhodným
spôsobom (napr. rôzne barvy, rôzne symboly pre jednotlivé body a pod.)
doplnte o dalšie informácie obsažené v datach.
-
Vytvorte vhodný obrázok pre aspoň jednu kategorickú premennú.
-
Výsledne obrázky si pomocou príkazu “pdf()” uložte na disk ako PDF
súbory.
|