Base graphics
A base graphics az R legrégebbi ábrázolási rendszere. Alapvetően statikus ábrák készítésére alkalmas, és igen apró részletekig paraméterezhető.
A base graphics ábrázolási modellje a "festő modellt" (paint model) követi, azaz az ábrakészítés lépései többnyire a következők:
- A "vászon" (canvas) előkészítése és valamilyen magas szintű ábrázoló rutin segítségével a fő ábra elkészítése.
- Az ábra kiegészítése kiegészítő pontokkal, vonalakkal, szöveggel stb., amely alacsonyabb szintű rutinok meghívásával történik.
- Az egyes lépések során (a vászon felosztásától kezdve a tengely-feliratok formázásáig) szinte minden elem megjelenését egyedileg kontrollálhatjuk.
A base graphics fő függvénye a plot
és a paraméterek beállítására szolgáló
par
. A plot
függvény valójában egy generikus függvény, rendkívül sok specifikus
metódussal (lásd methods(plot)
). Alapesetben a plot.default
metódust
hívjuk meg. Külön függvények léteznek hisztogramok (hist
), boxplotok
(boxplot
), oszlopdiagramok (barplot
), vonalábrák (matplot
), színkódolt
felület-ábrák (image
) stb. megjelenítésére. Alacsonyabb szintű függvényekkel
pontokat (points
), vonalakat (abline
, lines
, segments
), alakzatokat (polygon
),
szöveget (text
, mtext
), ábramagyarázatot (legend
) stb. adhatunk az ábrához.
A következőkben bemutatunk néhány gyakran használt ábratípust. A base graphics
valamennyi ábrázoló függvényének megtekintéséhez írd be ezt a sort a
konzolba: library(help = "graphics")
. Nagyon ajánlott elolvasni a hivatalos
R-es bevezető dokumentum vonatkozó részét is (lásd pl. itt).
Scatterplot
- töltsük be a diszlexiás adatainkat (ezek már olyan adatok, amelyekben a változók típusát megfelelően beállítottuk)
data(dyslex)
- ábrázoljuk az x tengelyen az életkort, az y tengelyen a helyesen olvasott szavak számát
# alap megadasi mod
plot(dyslex$kor, dyslex$olv_helyes1)
# a with() fuggvenyt hasznalva, kulon szinnel jelolve a ket csoportot, es
# megvaltoztatva a pontok alakjat
with(dyslex,
plot(kor, olv_helyes1, col = csoport, pch = 16))
# tegyunk hozza abramagyarazatot
legend("right", legend = levels(dyslex$csoport),
col = c("black", "red"), pch = 16)
- ahogyan a modellezés során, a
plot
függvénynél is használhatjuk aformula
interfészt; a formula általános alakja: függő változó ~ magyarázó változó - bolondítsuk meg az egészet azzal, hogy felosztjuk a vászont két részre, és tegyünk egymás mellé egy-egy ábrát a kor & olv_helyes1, illetve a kor & olv_helyes2 változók összefüggéséről
# a par() függvény 'mfrow' argumentumának megadjuk, hogy 1 sorra és 2
# oszlopra ossza fel az ábrázolási területet
par(mfrow = c(1, 2))
# elso mezo feltoltese egy abraval, formula-t hasznalva
plot(olv_helyes1 ~ kor, data = dyslex)
# masodik mezo feltoltese egy abraval, formula-t hasznalva
plot(olv_helyes2 ~ kor, data = dyslex)
Boxplot
A box & whisker ábra nagyon jó és robusztus módszer arra, hogy ábrázoljuk egy folytonos változó eloszlását egy csoportosító változó függvényében.
- ábrázoljuk az olv_helyes1 változó eloszlását a csoport (kontroll/sni) függvényében
# notch-ot is tegyunk ra, lasd ?boxplot
boxplot(olv_helyes1 ~ csoport, data = dyslex, notch = TRUE)
# huzzunk egy vizszintes vonalat az olv_helyes2 medianjanak megfeleloen
abline(h = median(dyslex$olv_helyes2), col = "grey")
- ábrázoljuk a figyelemzavar változó eloszlását a csoport (kontroll/sni) függvényében, azonosítsuk az outlier-t
# a plot() automatikusan a boxplot()-ot jelenti, ha az x valtozo faktor!
plot(figyzavar ~ csoport, data = dyslex, notch = TRUE)
with(dyslex, identify(csoport, figyzavar))
## integer(0)
dyslex[25, ]
## id nem csoport oszt kor figyzavar szokincs olv_helyes1 olv_helyes2
## 25 s25 fiu kontroll 3 114 84 42 19 25
## olv_helyes3 sp_helyes1 sp_helyes2 sp_helyes3 sp_helyes4 sp_helyes5
## 25 24 24 15 15 14 16
## figy_csop olvasas helyesiras
## 25 adhd 68 84
Ábra mentése külső fájlba
Valójában a grafikai eszköz, amely az ábrát megjeleníti, nem csak a
képernyődön megnyíló ablak (vagy RStudio-nal a Plots window) lehet.
Szabadon megválaszthatod, hogy az ábrát milyen eszközön akarod elkészíteni,
lásd: ?device
. Például készítsünk egy pdf-et a korábbi boxplot-os
ábrából:
# ha az ű és í nem jol jelenne meg, az alábbi paranccsal kikuszobolheted
pdf.options(encoding = "CP1250")
# nyitunk egy pdf grafikai eszközt, megadjuk a fajl nevet, az abra meretet
pdf(file = "temp.pdf", width = 7, height = 7)
# elkeszitjuk az abrat
plot(figyzavar ~ csoport, data = dyslex, notch = TRUE)
# bezarjuk az eszkozt
dev.off()
Ezek után a kérdéses fájl (temp.pdf) ott pihen a munkakönyvtáradban.
(Az RStudio Plots nevet viselő ablakában lehetőséged van arra, hogy az aktuális ábrát akár valamilyen bitmap, akár pdf formátumba exportáld. Ez sajnos nem mindig működik tökéletesen, illetve humán interakciót igényel, így például szkripteket futtatva nem használható.)
Base graphics ábrák a különböző csomagokban
Nagyon valószínű, hogy valaki már megírta az a plottoló rutint, amelyet használni szeretnél, így érdemes először keresni, és csak utána feltalálni a kereket.
Sajnos egy ideje nem frissül, de ezen a linken találhatsz egy egész mutatós kollekciót R-ábrákból.
Explorációs ábrázolásokra (különösen regressziós elemzések előtt) kiválóan
alkalmas például a psych csomag pairs.panels
függvénye:
library(psych)
pairs.panels(
dyslex[, c("szokincs", "olv_helyes1", "olv_helyes2", "olv_helyes3")])