Více grafů v jednom okně
Jeden ze způsobů jak vykreslit více grafů v jednom okně je s použitím funkce par(), specifikací argumentů mfrow= nebo mfcol=, kde zadáváme počet řádků a sloupců c(počet řádků, počet sloupců):
- mfrow: více grafů vykreslených po řádcích
- mfcol: více grafů vykreslených po sloupcích
Tento příkaz je nutné zadat před kreslením grafů:
> par(mfrow = c(2,2)) # grafické okno se rozdělí na 4 části (2 sloupce, 2 řádky), do kterých se vykreslují grafy po řádcích
> hist(rnorm (1000,0,1)); boxplot(rnorm(1000,0,1)); plot(rnorm(1000,0,1)); barplot(rnorm(1000,0,1))
> par(mfcol = c(2,2)) # Okno se také rozdělí na čtyři části, jen grafy se vykreslují po sloupcích
> hist(rnorm (1000,0,1)); boxplot(rnorm(1000,0,1)); plot(rnorm(1000,0,1)); barplot(rnorm(1000,0,1))
Velikost okna je také někdy vhodné upravit před vykreslením více grafů:
> par(mfrow=c(1,3))
> hist(rnorm(1000,0,1))
> boxplot(rnorm(1000,0,1))
> plot(rnorm(1000,0,1))
Vidíme, že jednotlivé grafy výše jsou velice úzké, proto velikost okna rozšíříme:
> windows(width=21,height=7)
> par(mfrow=c(1,3))
> hist(rnorm(1000,0,1))
> boxplot(rnorm(1000,0,1))
> plot(rnorm(1000,0,1))
Okraje každého grafu mohou být jednoduše upravené (zvětšené nebo zmenšené). Toto je výhodné pokud máme více grafů vedle sebe a potřebujeme získat místo, protože chceme větší grafy bez nutnosti měnit velikost grafického okna.
par(mar = c(bottom, left, top, right)) # změna okrajů (margins) u figure region, defaultní nastavení je c (5, 4, 4, 2) + 0.1
par(oma = c(bottom, left, top, right)) # změna okrajů (margins) u outer region při více grafech
Argumenty mfrow= a mfcol= funkce par() mají jednu nevýhodu - rozdělují grafické okno pravidelně tak, aby šířka i výška grafů byla stejná. Chceme-li nakreslit obrázek složitější, může nám pomoct funkce layout():
Základní popis práce s funkcí layout() najdete ve výukové jednotce Další užitečné funkce předmětu Výpočetní matematické systémy.