Obrázek 3.8: Přehled typů čar, číselných a jmenných kódů Kód 3.19:
ggplot(UKgas.l, aes(x = year, y = consumption, group = quarter)) + geom_line(linetype = 4) Kód 3.20:
ggplot(UKgas.l, aes(x = year, y = consumption, group = quarter, linetype = quarter)) + geom_line() U širokého formátu dat argument linetype umístíme do příslušné vrstvy. Kdybychom chtěli zobrazit i legendu, je potřeba ho umístit do listu mapping = aes() příslušné vrstvy. Hodnota se pak nerovná číselnému či textovému označení symbolu, ale názvu, který se má zobrazit v legendě. Typ čáry je vybrán automaticky a je možné ho manuálně upravit stejně jako u dlouhého formátu dat ve funkci scale_linetype_manual(). Kód 3.21:
ggplot(UKgas.s, aes(x = year)) + geom_line(aes(y = quarter1), linetype = 3) + geom_line(aes(y = quarter2), linetype = "dashed") Kód 3.22:
ggplot(UKgas.s, aes(x geom_line(aes(y = geom_line(aes(y = geom_line(aes(y = geom_line(aes(y =
= year)) + quarter1, linetype quarter2, linetype quarter3, linetype quarter4, linetype
= = = =
"Q1")) + "Q2")) + "Q3")) + "Q4"))
98 Jazyk R a tvorba grafů
Ukázka elektronické knihy, UID: KOS507117
1200
quarter
900
quarter1
600
quarter2
300
quarter4
quarter3
1960
1970
year
1980
(a) Dlouhý formát
linetype
900
quarter1
consumption
1200
Q1
600
Q2
300
Q4
Q3
1960
1970
year
1980
(b) Široký formát
Obrázek 3.9 (Kód 3.20, Kód 3.22): Porovnání grafů při změně typu čar dle kategorie
Další úpravy čar U čárového grafu můžeme upravovat sílu čar pomocí argumentu size, barvu pomocí colour nebo průhlednost pomocí alpha. Všechny tyto úpravy se provádějí analogicky jako pro typ čáry linetype a jsou detailněji popsány v kapitole 3.16. Kombinace bodového a čárového grafu Bodový a čárový graf lze kombinovat. Stačí přidat další funkci k již vytvořenému grafu. Chceme-li například čárový graf, který bude mít vyznačeny jednotlivé body, zahrneme do grafu jak funkci geom_point(), tak geom_line(). Pro lepší náhled grafu je v ukázce datová tabulka zkrácena. Kód 3.23:
ggplot(UKgas.l[61:108,], aes(x = year, y = consumption, colour = quarter)) + geom_point() + geom_line() Vykreslení funkce Další typickým požadavkem může být vykreslení dané matematické funkce. Pro vykreslování funkcí lze použít funkci stat_function(), kde do argumentu fun napíšeme název funkce, kterou chceme použít. Funkce může být defaultní, nebo vlastní. Vytvoří se čárový graf. Do argumentu fun vstoupí název této funkce již bez závorky. Není možné upravovat její další argumenty. Pokud je chceme nastavit, je třeba ji vytvořit jako funkci vlastní, která poté vstoupí do argumentu fun. Vytváření vlastních funkcí je detailně popsáno v kapitole 1.6.2. V hlavní funkci ggplot() v argumentu data tak stačí definovat pouze datovou tabulku s hodnotami pro souřadnice x, neboť souřadnice y dopočítá funkce stat_function() dle specifikované funkce. K demonstraci použijeme funkci sinus a do argumentu fun vstoupí hodnota sin.
2D grafy pomocí ggplot2 99
Ukázka elektronické knihy, UID: KOS507117
Kód 3.24:
ggplot(data.frame(x = c(0,6*pi)), aes(x)) + stat_function(fun = sin) 1.0
quarter
900
0.5
quarter1 quarter2
600
0.0
y
consumption
1200
quarter3 quarter4
−0.5
300 −1.0 1977
1980
year
1983
1986
0
5
(a) Bodový a čárový graf
10
15
x
(b) Funkce sinus Obrázek 3.10 (Kód 3.23): Práce s čárovým grafem
3.5 Jednoduchý sloupcový graf (bar plot) K vytvoření sloupcového grafu využijeme funkci geom_bar(). Nejjednodušší graf vznikne, máme-li v datové tabulce pro každou kategorii právě jednu číselnou hodnotu, která reprezentuje výšku sloupce. Argumentem stat nastaveným jako "identity" ve funkci geom_ bar() definujeme, že žádná další funkce nemá být na data aplikována. Ve funkci ggplot() specifikujeme vstup osy x kategoriální proměnnou a vstup osy y proměnnou, ve které jsou uloženy číselné hodnoty. Chceme-li horizontální sloupcový graf, stačí přidat funkci coord_flip(). Použité datové tabulky UKgas.bar a UKgas.l jsou definovány v kapitole 2.5. Kód 3.25:
ggplot(UKgas.bar, aes(x = quarter, y = consumption)) + geom_bar(stat = "identity")
300
consumption
Q4
quarter
200
100
Q3 Q2 Q1
0
Q1
Q2
quarter
Q3
Q4
0
(a) Klasický
100
200
consumption
(b) Horizontální
Obrázek 3.11 (Kód 3.25, Kód 3.26): Základní sloupcový graf
100 Jazyk R a tvorba grafů Ukázka elektronické knihy
300