Další užitečné funkce
K otevření dalšího grafického okna slouží příkaz dev.new() nebo windows() (pouze v systému Windows). Příkaz dev.new() můžeme použít i s numerickým argumentem which, prostřednictvím něhož lze příkazy dev.set(which) a dev.off(which) dané okno aktivovat, popř. zavřít. Příkaz graphics.off() zavře všechna grafická okna.
Ukládat grafy lze v menu File Save as výběrem požadovaného formátu. Alternativou je použít některého z příkazů:
pdf(file, width, height)
postscript(file, width, height)
png(file, width, height)
jpeg(file, width, height)
file textový řetězec pro název souboru
width šířka grafu v palcích
height výška grafu v palcích
> pdf(file="Nil.pdf")
> plot(Nile, main="Rocni prutoky reky Nil" vykreslení objektu Nile (vestavěná proměnná)
> dev.off()
|
Příkazem recordPlot() lze grafy ukládat i jako objekty. Zpětně lze takto uložený graf zobrazit (a upravovat) příkazem replayPlot() nebo zavoláním názvu objektu.
> plot(Nile, main="Rocni prutoky reky Nil")
> Nil <- recordPlot() uložení grafu do proměnné Nil
> replayPlot(Nil) zobrazení grafu
|
Funkce layout() umožňuje vytvářet složený graf obsahující několik grafů různých rozměrů, přičemž mohou zabírat i více řádků či sloupců.
Jediným povinným argumentem funkce je matice, jejíž počet řádků a sloupců a jejich číselné hodnoty určují pořadí zaplňování jednotlivých "boxů" grafy. Příkaz layout(matrix(c(1, 0, 3, 2), 2, 2, byrow=TRUE)) vytvoří graf se čtyřmi boxy, přičemž pozice [1,1] bude obsazena jako první, dále budou obsazovány pozice [2,2] a [2,1], pro nulovou hodnotu zůstává pozice prázdná (pozice [1,2]).
Argumenty heights a widths jsou používány ke specifikaci výšek a šířek boxů. Šablonu s jednotlivými boxy si můžeme prohlédnout příkazem layout.show(n) (obr. Výuka jazyka R 22), kde n udává počet vykreslovaných grafů.
> layout(matrix(c(1, 0, 3, 2), 2, byrow=T), widths=c(3, 1), heights=c(1, 3))
> layout.show(3) (obr. Výuka jazyka R 22)
> load(file="pary.dat") načtení datového souboru (závislost výšky 169 manželských párů, [8]). Soubor obsahuje proměnnou pary typu seznam se složkami muz, zena, muzhist a zenahist
> attach(pary)
> layout(matrix(c(1, 0, 3, 2), 2, byrow=T), widths=c(3, 1), heights=c(1, 3))
> par(mar=c(0, 3.5, 1, 1)) funkce mar slouží pro nastavení okrajů grafu
> barplot(muzhist, axes=F, space=0)
> par(mar=c(3.5, 0, 1, 1))
> barplot(zenahist, axes=F, space=0, horiz=T)
> par(mar=c(4.3, 4, 1, 1))
> plot(muz, zena, xlab="muz [mm]", ylab="zena [mm]")
|
Funkce split.screen() slouží k dělení grafického prostředí na libovolný počet částí. Např. příkazem split.screen(c(2,2)) rozdělíme prostředí na čtyři části, na něž můžeme odkazovat příkazy screen(1),..., screen(4) a pomocí těchto příkazů dané podgrafy vytvářet nebo měnit. Každá část přitom může být znovu rozdělena pomocí funkce split.screen(c(,), screen).
Poznámka. Rozdělení grafu na jednotlivé podgrafy můžeme dosáhnout i pomocí argumentů mfcol a mfrow funkce par() (viz odstavec Funkce par ()).
MATLAB používá k rozdělení grafu na více částí funkci subplot. |
> load(file="etnika.dat") načtení datového souboru (počet souhlasných reakcí na deset otázek zástupcům čtyř etnik, [8])
> popisx <- rownames(etnika)
> split.screen(c(1,3)) vytvoří prázdné grafické okno, navíc je výstupem i vektor hodnot odkazující na jednotlivé podgrafy, šablona okna s boxy viz následující obrázek
[1] 1 2 3
> screen(1) aktivace levého boxu pro vykreslení podgrafu
> barplot(etnika[,1], main="etnikum 1", names.arg=popisx, las=3)
> screen(2)
> barplot(etnika[,2], main="etnikum 2", names.arg=popisx, las=3)
> split.screen(c(2,1), screen=3) rozdělení pravého boxu na 2 další boxy, aktuální šablona s boxy viz následující obrázek
[1] 4 5
> screen(4)
> barplot(etnika[,3], main="etnikum 3", names.arg=popisx, las=3)
> screen(5)
> barplot(etnika[,4], main="etnikum 4", names.arg=popisx, las=3)
|
Interaktivní funkce locator() umožňuje vybrat pozici pro umístění grafických prvků (např. legendy, popisků os,...). Funkce locator() čeká, než uživatel zvolí levým tlačítkem myši místo, následně vypíše jeho souřadnice. Argument n udává počet bodů, u kterých chceme tímto způsobem zjistit souřadnice.