Slovník | Vyhledávání | Mapa webu
 
Základy informatiky pro biologyVýpočetní matematické systémy Výuka jazyka R Grafika v R Další užitečné funkce

Logo Matematická biologie

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()
null device
1

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
 
Obr. 21. Roční průtoky řeky Nil

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]")
 
Obr. 22.Šablona s boxy 
Obr. 23. Závislost výšky 169 manželských párů

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
Obr. 25. Šablona okna s boxy pro příkaz split.screen(c(1,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
Obr. 25. Šablona okna s boxy pro příkaz split.screen(c(2,1), screen=3)

 

> 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)
 
Obr. 25. Počet souhlasných reakcí na deset otázek zástupcům čtyř etnik.

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.

 
vytvořil Institut biostatistiky a analýz Lékařské fakulty Masarykovy univerzity