Obsah
1. Grammar of graphics implementovaná v knihovně ggplot2
2. Konstrukce grafů postupnou aplikací funkcí
3. Specifikace vstupních dat ve funkci ggplot
4. Základní transformace zdrojových dat do vizuálních stylů
5. Vykreslení korelačního diagramu s využitím funkce geom_point()
6. Modifikace vizuálního zobrazení bodů v korelačním diagramu
7. Modifikace většího množství vizuálních parametrů
8. Nastavení konstantních vizuálních stylů, kombinace se styly modifikovanými daty
9. Modifikace vizuálního stylu společně se zobrazením legendy
10. Použití vlastních barev v grafu
11. Šedý podklad u všech bodů v grafu
12. Přidání regresní přímky do korelačního diagramu
13. Zobrazení názvů automobilů
15. Alternativní způsob zobrazení průběhu funkce s využitím stat_function
17. Změna barev ve sloupcovém grafu
18. Obsah následující části seriálu
19. Repositář s demonstračními příklady
1. Grammar of graphics implementovaná v knihovně ggplot2
Na desátou část seriálu o programovacím jazyku R, v níž jsme si vysvětlili některé základní funkce knihovny ggplot2, dnes navážeme. Ukážeme si totiž praktické využití některých aspektů „grammar of graphics“, což je způsob konstrukce grafů, v němž se využívá mapování vizuálních stylů na vstupní data. Vykreslení, resp. přesněji řečeno složení grafu, je většinou provedeno v několika krocích:
- Inicializace objektu ggplot, většinou se specifikací zdroje dat.
- Specifikace „estetického mapování“, což je určení, jakým způsobem se mají zdrojová data transformovat do vizuálních stylů, popř. na geometrii vykreslovaných objektů (lze provést i přímo ve funkciggplot, jak si to ostatně ukážeme v příkladech).
- Určení způsobu vykreslení (typ grafu atd.).
- Změna grafických (vizuálních) vlastností, například na základě třetí či další veličiny.
- Změna souřadného systému (mapování, projekce).
- Složení grafu z vrstev, popř. rozdělení na „facets“.
Základní postup konstrukce grafů je ukázán na následujícím obrázku. V tomto případě nejsou vizuální vlastnosti ovlivněny vstupními daty (můžeme je však nastavit jinak – například konstantní barvu vykreslovaných bodů atd.):
Obrázek 1: Princip konstrukce grafů s využitím grammar of graphics.
Autor: Javier Luraschi, https://github.com/javierluraschi
Styl vykreslení, například barva, grafické symboly, velikost atd., je však ovlivnitelný vstupními daty, což je naznačeno na dalším obrázku:
Obrázek 2: Mapování hodnot na vizuální vlastnosti (barva …).
Autor: Javier Luraschi, https://github.com/javierluraschi
A právě naznačenými dvěma způsoby konstrukce grafů se budeme zabývat v navazujících kapitolách.
2. Konstrukce grafů postupnou aplikací funkcí
V úvodní kapitole jsme si ve stručnosti řekli, jakým způsobem se konstruuje graf ze vstupních dat specifikací mapování, vizuálních stylů, změny souřadného systému atd. Tento způsob konstrukce je přitom plně reflektován i v programovém kódu, protože se graf skutečně skládá aplikací funkcí na výsledek vytvořený předchozí funkcí. Základem je v tomto případě konstruktor ggplot, který vytvoří strukturu reprezentující graf a tuto strukturu můžeme v dalších funkcích postupně modifikovat a přidávat do ní další atributy. Naznačení celého postupu může vypadat následovně:
ggplot(data=) + <mapping> + <geom-function> + <coordinate-function> + <facet-function> + <scale-function> + <theme-function>
3. Specifikace vstupních dat ve funkci ggplot
V této kapitole i v kapitolách navazujících budeme opět používat datový soubor uložený v datovém rámci mtcars, který již známe z předchozích částí tohoto seriálu. Takže jen krátce – jedná se o souhrnné informace o třiceti dvou vozech, přičemž každý řádek datového rámce je pojmenovaný podle typu vozu):
mtcars mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2 Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1 Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4 Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2 Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2 Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4 Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4 Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3 Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3 Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3 Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4 Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4 Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4 Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1 Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1 Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1 Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2 AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2 Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4 Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2 Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1 Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2 Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2 Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4 Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6 Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8 Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
Vstupní data pro nově vznikající graf se specifikují argumentem data při volání funkce ggplot, která zkonstruuje základní strukturu reprezentující graf. Nejjednodušší způsob konstrukce grafu tedy může vypadat takto:
library(ggplot2) ggplot(data=mtcars)
Alternativně je možné zápis nepatrně zkrátit tím, že se neuvede název argumentu – prvním (nepojmenovaným) argumentem funkce ggplot je tedy specifikace vstupních dat:
library(ggplot2) ggplot(mtcars)
Vzhledem k tomu, že jsme pouze určili vstupní data, ovšem již jsme explicitně neřekli, jaké sloupce se mají vykreslit, popř. jaký vizuální styl se má použít, zareaguje knihovna ggplot2 jednoduše – graf sice vykreslí, ale jako pouhou šedou plochu, kterou můžeme považovat za kreslicí plátno (canvas):
Obrázek 3: Prázdná plocha připravená pro nově vykreslovaný graf vytvořená předchozím skriptem.
4. Základní transformace zdrojových dat do vizuálních stylů
Určení transformace zdrojových dat do vizuálních stylů zajišťuje funkce nazvaná aes:
help(aes) aes package:ggplot2 R Documentation Construct aesthetic mappings Description: Aesthetic mappings describe how variables in the data are mapped to visual properties (aesthetics) of geoms. Aesthetic mappings can be set in 'ggplot2()' and in individual layers.
Způsob jejího použití přímo v konstruktoru ggplot může vypadat následovně – ve funkci aes specifikujeme, jaké hodnoty budou použity pro x-ové souřadnice a jaké pro y-ové souřadnice ve výsledném grafu (přitom ale prozatím neříkáme, o jaký graf se má jednat):
library(ggplot2) ggplot(mtcars, aes(x = mpg, y = wt))
Funkci aes ovšem můžeme volat i samostatně (což má ovšem sémanticky poněkud odlišný význam popsaný příště):
library(ggplot2) ggplot(mtcars) + aes(x = mpg, y = wt)
Výsledkem bude v tomto případě odlišný obrázek, který již kromě šedé plochy bude obsahovat i souřadné osy se správným rozsahem hodnot:
Obrázek 4: Nyní graf obsahuje i souřadné osy, protože ggplot v tuto chvíli již ví, jaké jsou rozsahy hodnot na nich.
5. Vykreslení korelačního diagramu s využitím funkce geom_point()
Nyní již máme vše připraveno pro vykreslení korelačního diagramu. K tomuto účelu se používá funkce nazvaná geom_point(), která namapuje hodnoty x, y na středy bodů, které se vynesou do diagramu. Máme k dispozici dvě možnosti zápisu. První možnost používá volání aes() uvnitř funkce ggplot:
library(ggplot2) ggplot(mtcars, aes(x = mpg, y = wt)) + geom_point()
Druhá možnost naopak volá aes() samostatně a kombinuje výsledek s výsledkem funkce ggplot:
library(ggplot2) ggplot(mtcars) + aes(x = mpg, y = wt) + geom_point()
Obrázek 5: Korelační diagram vykreslený skripty z této kapitoly.
V dalších příkladech použijeme jiný zápis, kdy bude volání dalších funkcí uvedeno na samostatných řádcích:
library(ggplot2) ggplot(data=mtcars) + aes(x = mpg, y = wt) + geom_point()
6. Modifikace vizuálního zobrazení bodů v korelačním diagramu
Podobně jako u funkce qplot popsané minule i konstrukce diagramů funkcí ggplot umožňuje modifikaci vizuálního zobrazení bodů v jakémkoli diagramu, včetně diagramu korelačního. Podívejme se na jednu z variant, kdy je barva bodů modifikována obsahem sloupce (v datovém rámci) s počtem válců:
library(ggplot2) ggplot(data=mtcars) + aes(x = mpg, y = wt) + geom_point(col=mtcars$cyl)
Výsledek:
Obrázek 6: Modifikace barev vykreslovaných bodů podle počtu válců motoru automobilu.
Podobným způsobem lze změnit velikost vykreslovaných bodů, například na základě počtu rychlostních stupňů:
library(ggplot2) ggplot(data=mtcars) + aes(x = mpg, y = wt) + geom_point(size=mtcars$gear)
Obrázek 7: Modifikace velikosti vykreslovaných bodů podle počtu rychlostních stupňů automobilu.
Změna tvaru bodů:
library(ggplot2) ggplot(data=mtcars) + aes(x = mpg, y = wt) + geom_point(shape=mtcars$cyl)
Obrázek 8: Modifikace tvaru vykreslovaných bodů podle počtu válců v motoru.
7. Modifikace většího množství vizuálních parametrů
Modifikovat je pochopitelně možné současně i větší množství vizuálních parametrů, což je ukázáno na dalším demonstračním příkladu, který je vlastně kombinací obou příkladů předchozích:
library(ggplot2) ggplot(data=mtcars) + aes(x = mpg, y = wt) + geom_point(color=mtcars$cyl, size=mtcars$gear)
Obrázek 9: Současná modifikace barev i velikostí vykreslovaných bodů podle počtu rychlostních stupňů automobilu a podle počtu válců v motoru.
Změna barvy a tvaru vykreslovaných bodů se provede následovně:
library(ggplot2) ggplot(data=mtcars) + aes(x = mpg, y = wt) + geom_point(shape=mtcars$cyl, color=mtcars$gear)
Obrázek 10: Současná modifikace barev i tvarů vykreslovaných bodů podle počtu rychlostních stupňů automobilu a podle počtu válců v motoru.
8. Nastavení konstantních vizuálních stylů, kombinace se styly modifikovanými daty
Vizuální styly mohou být nastaveny na konstantní hodnotu platnou pro všechny vykreslované body, například takto:
library(ggplot2) ggplot(data=mtcars) + aes(x = mpg, y = wt) + geom_point(color="red", size=5)
Tentokrát s tímto výsledkem:
Obrázek 11: Změna barvy a velikosti všech vykreslených bodů na stejnou hodnotu.
Pochopitelně je umožněno, aby některé styly byly neměnné a jiné modifikovatelné podle hodnot získaných ze vstupních dat:
library(ggplot2) ggplot(data=mtcars) + aes(x = mpg, y = wt) + geom_point(shape=mtcars$cyl, color="red", size=5)
S výsledkem:
Obrázek 12: Změna barvy a velikosti všech vykreslených bodů na stejnou hodnotu, mění se pouze tvar bodů.
9. Modifikace vizuálního stylu společně se zobrazením legendy
Existuje ještě jeden způsob, jakým můžeme dosáhnout modifikace vizuálního stylu zobrazení bodů v grafu. Můžeme totiž použít další (nepovinné) parametry předávané funkci aes, což má dva důsledky:
- Specifikuje se pouze jméno sloupce v datovém rámci, nikoli plné jméno (i s datovým rámcem)
- Automaticky se zobrazí legenda vysvětlující daný vizuální styl (resp. jaké hodnoty vizuální styl ovlivní)
Podívejme se nyní na jednoduchý příklad, v němž budeme barvu odvozovat od počtu válců. Aby se použily skutečně jen „diskrétní“ hodnoty, použijeme funkci factor pro převedení počtu válců na faktory:
library(ggplot2) ggplot(data=mtcars) + aes(x = mpg, y = wt, color=factor(cyl)) + geom_point(size=3)
Výsledek je zobrazen na třináctém obrázku:
Obrázek 13: Modifikace barev vykreslovaných bodů podle počtu válců motoru automobilu společně se zobrazením legendy.
Měnit lze (současně) i více vizuálních stylů, například velikost vykreslených bodů:
library(ggplot2) ggplot(data=mtcars) + aes(x = mpg, y = wt, color=factor(cyl), size=factor(gear)) + geom_point()
Obrázek 14: Modifikace barev vykreslovaných bodů podle počtu válců motoru automobilu společně se zobrazením legendy; navíc se velikostí bodů zvýrazňuje počet rychlostních stupňů.
10. Použití vlastních barev v grafu
V některých situacích nám nemusí vyhovovat ty barvy, které jsou automaticky vybrány knihovnou ggplot2 pro zobrazení třetí/čtvrté atd. veličiny v korelačním diagramu. Barvy si pochopitelně můžeme nastavit vlastní, a to (v tomto případě) s využitím funkce nazvané scale_color_manual, které se předá vektor s barvovou paletou. Jednotlivé barvy jsou pojmenovány, popř. lze použít dnes již klasický systém s trojicí hexadecimálně zapsaných hodnot barvových složek:
library(ggplot2) ggplot(data=mtcars) + aes(x = mpg, y = wt, color=factor(cyl), size=factor(gear)) + geom_point() + scale_color_manual(values = c("4" = "red", "6" = "darkblue", "8" = "darkgreen"))
Výsledek by měl vypadat následovně:
Obrázek 15: Použití vlastních barev pro zvýraznění počtu válců motoru.
11. Šedý podklad u všech bodů v grafu
Při konstrukci grafu nejsme omezeni pouze na jedinou sadu dat, popř. na jediný způsob vykreslení vstupních dat. V dalším příkladu je ukázáno, jakým způsobem je možné vykreslit všechny body v korelačním diagramu dvakrát – jednou s využitím šedé barvy a velkých bodů, podruhé pak již jako barevně zvýrazněné body. Knihovna ggplot2 dodrží nastavené pořadí vykreslování – nejdříve velké šedé body, posléze body menší, ale barevně zvýrazněné:
library(ggplot2) ggplot(data=mtcars) + aes(x = mpg, y = wt, color=factor(cyl), size=factor(gear)) + geom_point(color="gray", size=9) + geom_point() + scale_color_manual(values = c("4" = "red", "6" = "darkblue", "8" = "darkgreen"))
Obrázek 16: Šedý podklad u všech bodů v grafu.
12. Přidání regresní přímky do korelačního diagramu
Do korelačního diagramu můžeme přidat i regresní přímku. K tomuto účelu se používá funkce pojmenovaná geom_smooth, které se předá typ regresního modelu (lm funkce pro linear model):
library(ggplot2) ggplot(data=mtcars) + aes(x = mpg, y = wt) + geom_point(size = 5) + geom_smooth(method = "lm")
Obrázek 17: Regresní přímka přidaná do korelačního grafu.
13. Zobrazení názvů automobilů
Prozatím umíme do grafu přidat následující entity:
- Jednotlivé body s využitím geom_point
- Regresní přímku pomocí geom_smooth zmíněnou v předchozí kapitole
Často se setkáme s nutností přidat do grafu popisky jednotlivých hodnot. To je samozřejmě možné a slouží k tomu funkce nazvaná geom_label, které lze předat (přes aes, jak již víme) jména zobrazená u jednotlivých bodů. V případě, že se má jednat o jména automobilů, musíme je získat přímo z názvů řádků v datovém rámci (tato jména nejsou uložena v samostatném sloupci), takže musíme použít row.names(mtcars). Celý kód příkladu bude vypadat následovně:
library(ggplot2) ggplot(data=mtcars) + aes(x = mpg, y = wt) + geom_point(size = 5) + geom_label(aes(label=row.names(mtcars)))
Obrázek 18: Zobrazení názvů automobilů v grafu.
library(ggplot2) car.names <- row.names(mtcars) ggplot(data=mtcars) + aes(x = mpg, y = wt) + geom_point(size = 5) + geom_label(aes(label=car.names))
14. Zobrazení průběhů funkcí
Poměrně často se setkáme s požadavkem na zobrazení průběhů funkcí, přesněji řečeno funkcí zapsaných explicitně formou y=f(x). Existuje několik způsobů, jak tohoto požadavku dosáhnout a jedna z možností spočívá ve vytvoření vektoru s x-ovými hodnotami, dalšího vektoru s hodnotami y-ovými a konstrukcí pomocného datového rámce. Vše je ukázáno na dalším demonstračním příkladu:
library(ggplot2) x < 1:200 f < x/2 y < sin(f)/f df < data.frame(x) ggplot(data = df) + aes(x=x, y=y) + geom_point()
Obrázek 19: Průběh funkce zobrazený nespojitě – jednotlivými body.
Výhodnější bude zobrazení průběhu funkce formou pospojovaných úseček:
library(ggplot2) x < 1:200 f < x/2 y < sin(f)/f df < data.frame(x) ggplot(data = df) + aes(x=x, y=y) + geom_line()
S tímto výsledkem:
Obrázek 20: Průběh funkce zobrazený pospojovanými úsečkami (polyčárou).
Podívejme se ještě, jakým způsobem se knihovna ggplot2 vypořádá s funkcí, která je nespojitá a současně nemá v bodě x=0 limitu:
library(ggplot2) x < -100:100 y < 1/x df < data.frame(x) ggplot(data = df) + aes(x=x, y=y) + geom_line()
Obrázek 21: Zobrazení funkce y=1/x, a to včetně bodu, pro nějž neexistuje limita.
15. Alternativní způsob zobrazení průběhu funkce s využitím stat_function
Existuje i několik dalších způsobů zobrazení průběhu funkce. Namísto geom_point nebo geom_line lze alternativně použít i volání stat_function s tím, že se této funkci přímo předá funkce, která se má vykreslit (viz zvýrazněná část zdrojového kódu):
library(ggplot2) x < 1:10 df < data.frame(x) ggplot(data = df) + aes(x) + stat_function(fun=function(x) 1/x)
Obrázek 22: Alternativní způsob zobrazení průběhu funkce.
16. Jednoduchý sloupcový graf
Zavoláním funkce geom_bar můžeme do grafu vykreslit sloupcový graf tak, jak je to ukázáno v dalším demonstračním příkladu:
library(ggplot2) x < seq(1, nrow(mtcars)) ggplot(data=mtcars) + aes(x = x, y = wt) + geom_bar(stat="identity")
Obrázek 23: Vykreslení jednoduchého sloupcového grafu.
Vynutit si můžeme vykreslení každého sloupce odlišnou barvou, a to použitím pojmenovaného parametru fill předaného funkci aes (samozřejmě nejsme omezeni jen na hodnoty vektoru x):
library(ggplot2) x < seq(1, nrow(mtcars)) ggplot(data=mtcars) + aes(x = x, y = wt, fill=x) + geom_bar(stat="identity")
Obrázek 24: Jednoduchý sloupcový graf, jehož každý sloupec je vyplněn jinou barvou.
17. Změna barev ve sloupcovém grafu
Předchozí demonstrační příklad byl schválně vytvořen takovým způsobem, aby se každý sloupec zobrazil odlišnou barvou. Umožňuje nám to totiž vyzkoušet si použití odlišných barvových palet, resp. přesněji řečeno palet vytvořených gradientními přechody mezi několika specifikovanými barvami.
Specifikace palety složené z přechodů mezi barvami duhy:
library(ggplot2) x < seq(1, nrow(mtcars)) ggplot(data=mtcars) + aes(x = x, y = wt, fill=x) + geom_bar(stat="identity") + scale_fill_gradientn(colours=rainbow(4))
Obrázek 25: Barvová paleta složená z přechodů mezi barvami duhy.
Další barvová paleta se jmenuje „heat“, protože se používá v takzvaných „heat mapách“:
library(ggplot2) x < seq(1, nrow(mtcars)) ggplot(data=mtcars) + aes(x = x, y = wt, fill=x) + geom_bar(stat="identity") + scale_fill_gradientn(colours=heat.colors(4))
Obrázek 26: Barvová paleta „heat“.
Třetí barvová paleta je použita při zobrazování terénu:
library(ggplot2) x < seq(1, nrow(mtcars)) ggplot(data=mtcars) + aes(x = x, y = wt, fill=x) + geom_bar(stat="identity") + scale_fill_gradientn(colours=terrain.colors(4))
Obrázek 27: Barvová paleta „terrain“.
A konečně barvová paleta „topo“:
library(ggplot2) x < seq(1, nrow(mtcars)) ggplot(data=mtcars) + aes(x = x, y = wt, fill=x) + geom_bar(stat="identity") + scale_fill_gradientn(colours=topo.colors(4))
Obrázek 28: Barvová paleta „topo“.
18. Obsah následující části seriálu
V navazující části seriálu o programovacím jazyku R budou popsány složitější typy grafů (protože korelační diagramy jsou prakticky nejjednodušším typem grafu vůbec).
19. Repositář s demonstračními příklady
Zdrojové kódy všech dnes použitých demonstračních příkladů byly uloženy do nového Git repositáře, který je dostupný na adrese https://github.com/tisnik/r-examples V případě, že z nějakého důvodu nebudete chtít klonovat celý repositář (ten je ovšem – alespoň prozatím – velmi malý, dnes má stále jen jednotky kilobajtů), můžete namísto toho použít odkazy na jednotlivé demonstrační příklady, které naleznete v následující tabulce:
# | Demonstrační příklad | Stručný popis demonstračního příkladu | Cesta |
---|---|---|---|
1 | 01_data_specification.R | specifikace zdroje dat pro konstrukci grafu funkcí ggplot | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/01_data_specification.R |
2 | 02_shorter_data_specification.R | kratší zápis specifikace zdroje dat pro konstrukci grafu funkcí ggplot | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/02_shorter_data_specification.R |
3 | 03_aesthetic_as_parameter.R | základní transformace zdrojových dat do vizuálních stylů | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/03_aesthetic_as_parameter.R |
4 | 04_aesthetic_as_function.R | základní transformace zdrojových dat do vizuálních stylů, alternativní způsob zápisu | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/04_aesthetic_as_function.R |
5 | 05_geoms_point.R | vykreslení korelačního diagramu | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/05_geoms_point.R |
6 | 06_geoms_point_variant_B.R | vykreslení korelačního diagramu, alternativní způsob zápisu | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/06_geoms_point_variant_B.R |
7 | 07_geoms_point_variant_C.R | korelační diagram, vylepšený zápis | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/07_geoms_point_variant_C.R |
8 | 08_colors.R | modifikace barev vykreslovaných bodů podle počtu válců motoru automobilu | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/08_colors.R |
9 | 09_sizes.R | modifikace velikosti vykreslovaných bodů podle počtu rychlostních stupňů automobilu | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/09_sizes.R |
10 | 10_colors_and_sizes.R | kombinace změny barev i velikosti vykreslovaných bodů | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/10_colors_and_sizes.R |
11 | 11_shape.R | modifikace tvaru vykreslovaných bodů podle počtu válců v motoru | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/11_shape.R |
12 | 12_shape_and_color.R | současná modifikace barev i tvarů vykreslovaných bodů podle počtu rychlostních stupňů automobilu a podle počtu válců v motoru | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/12_shape_and_color.R |
13 | 13_fixed_size_color_default_shape.R | změna barvy a velikosti všech vykreslených bodů na stejnou hodnotu | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/13_fixed_size_color_default_shape.R |
14 | 14_fixed_size_color_modified_shape.R | změna barvy a velikosti všech vykreslených bodů na stejnou hodnotu, mění se pouze tvar bodů | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/14_fixed_size_color_modified_shape.R |
15 | 15_color_and_legend.R | modifikace barev vykreslovaných bodů podle počtu válců motoru automobilu společně se zobrazením legendy | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/15_color_and_legend.R |
16 | 16_color_size_and_legend.R | modifikace barev vykreslovaných bodů podle počtu válců motoru automobilu společně se zobrazením legendy; navíc se velikostí bodů zvýrazňuje počet rychlostních stupňů | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/16_color_size_and_legend.R |
17 | 17_scale_color_manual.R | použití vlastních barev pro zvýraznění počtu válců motoru | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/17_scale_color_manual.R |
18 | 18_gray_background.R | šedý podklad u všech bodů v grafu | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/18_gray_background.R |
19 | 19_geom_smooth.R | proložení bodů křivkou | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/19_geom_smooth.R |
20 | 20_row_names.R | zobrazení jmen automobilů přímo v grafu | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/20_row_names.R |
21 | 21_stat_function.R | jeden ze způsobů zobrazení průběhu funkce | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/21_stat_function.R |
22 | 22_function_drawn_as_points.R | zobrazení průběhu funkce pomocí jednotlivých bodů | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/22_function_drawn_as_points.R |
23 | 23_function_drawn_by_lines.R | zobrazení průběhu funkce pomocí propojení úsečkami | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/23_function_drawn_by_lines.R |
24 | 24_function1_over_x.R | ukázka způsobu zobrazení nespojité funkce | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/24_function1_over_x.R |
25 | 25_bar_chart.R | vykreslení jednoduchého sloupcového diagramu s výchozí barvou sloupců | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/25_bar_chart.R |
26 | 26_bar_chart_color.R | vykreslení jednoduchého sloupcového diagramu s modifikovanou barvou sloupců | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/26_bar_chart_color.R |
27 | 27_bar_chart_rainbow.R | specifikace použité barvové palety při vykreslování sloupcového grafu | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/27_bar_chart_rainbow.R |
28 | 28_bar_chart_heat_colors.R | specifikace použité barvové palety při vykreslování sloupcového grafu | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/28_bar_chart_heat_colors.R |
29 | 29_bar_chart_terrain_colors.R | specifikace použité barvové palety při vykreslování sloupcového grafu | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/29_bar_chart_terrain_colors.R |
30 | 30_bar_chart_topo_colors.R | specifikace použité barvové palety při vykreslování sloupcového grafu | https://github.com/tisnik/r-examples/blob/master/11-ggplot2/30_bar_chart_topo_colors.R |
20. Odkazy na Internetu
- Data visualization in R: cheat sheet
https://github.com/rstudio/cheatsheets/blob/master/data-visualization-2.1.pdf - The R Project for Statistical Computing
https://www.r-project.org/ - An Introduction to R
https://cran.r-project.org/doc/manuals/r-release/R-intro.pdf - R (programming language)
https://en.wikipedia.org/wiki/R_(programming_language) - The R Programming Language
https://www.tiobe.com/tiobe-index/r/ - R Graphics Second Edition
https://www.stat.auckland.ac.nz/~paul/RG2e/ - ggplot2 – Introduction
https://www.tutorialspoint.com/ggplot2/ggplot2_introduction.htm - ggplot2: Elegant Graphics for Data Analysis
https://ggplot2-book.org/index.html - Create Elegant Data Visualisations Using the Grammar of Graphics
https://www.rdocumentation.org/packages/ggplot2/versions/3.3.2 - Grid
https://www.stat.auckland.ac.nz/~paul/grid/grid.html - Interactive Course: Data Visualization with lattice in R
https://www.datacamp.com/courses/data-visualization-in-r-with-lattice - Lattice: trellis graphics for R
https://lattice.r-forge.r-project.org/ - Lattice: Multivariate Data Visualization with R
http://lmdvr.r-forge.r-project.org/figures/figures.html - Getting Started with Lattice Graphics
https://lattice.r-forge.r-project.org/Vignettes/src/lattice-intro/lattice-intro.pdf - Using lattice’s xyplot()
https://homerhanumat.github.io/tigerstats/xyplot.html - ggplot2 Tutorial
https://www.tutorialspoint.com/ggplot2/index.htm - Lattice Package in R with Functions and Graphs
https://techvidvan.com/tutorials/lattice-package-in-r/ - The R Graph Gallery
https://www.r-graph-gallery.com/index.html - Lattice Graphs
https://www.statmethods.net/advgraphs/trellis.html - ggplot2 (Graph gallery)
https://www.r-graph-gallery.com/ggplot2-package.html - R Markdown
https://rmarkdown.rstudio.com/ - R Markdown: The Definitive Guide
https://bookdown.org/yihui/rmarkdown/ - R Markdown Cheat Sheet
https://rstudio.com/wp-content/uploads/2016/03/rmarkdown-cheatsheet-2.0.pdf - Introduction to R Markdown
https://rmarkdown.rstudio.com/articles_intro.html - R Cheat Sheets
https://blog.sergiouri.be/2016/07/r-cheat-sheets.html - R Cheat Sheet
https://s3.amazonaws.com/quandl-static-content/Documents/Quandl±+R+Cheat+Sheet.pdf - Base R Cheat Sheet
https://rstudio.com/wp-content/uploads/2016/06/r-cheat-sheet.pdf - PYPL PopularitY of Programming Language
https://pypl.github.io/PYPL.html - Tiobe index
https://www.tiobe.com/tiobe-index/ - Stack Overflow: Most Loved, Dreaded & Wanted Programming Languages In 2020
https://fossbytes.com/stack-overflow-most-loved-dreaded-wanted-programming-languages-in-2020/ - How to Install and Use R on Ubuntu
https://itsfoss.com/install-r-ubuntu/ - R programming for beginners – Why you should use R
https://www.youtube.com/watch?v=9kYUGMg_14s - GOTO 2012 • The R Language The Good The Bad & The Ugly
https://www.youtube.com/watch?v=6S9r_YbqHy8 - Intro to Data Visualization with R & ggplot2
https://www.youtube.com/watch?v=49fADBfcDD4 - Plotting with ggplot2: Part 1
https://www.youtube.com/watch?v=HeqHMM4ziXA - Plotting with ggplot2: Part 2
https://www.youtube.com/watch?v=n8kYa9vu1l8 - R vs Python – What should I learn in 2020? | R and Python Comparison
https://www.youtube.com/watch?v=eRP_J2yLjSU - R Programming 101
https://www.youtube.com/c/rprogramming101 - Seriál Tvorba grafů pomocí programu „R“
https://www.root.cz/serialy/tvorba-grafu-pomoci-programu-r/ - Tvorba grafů pomocí programu „R“: úvod
https://www.root.cz/clanky/tvorba-grafu-pomoci-programu-r-1/ - Tvorba grafů pomocí programu „R“: pokročilé funkce
https://www.root.cz/clanky/tvorba-grafu-pomoci-programu-r-pokrocile-funkce/ - Tvorba grafů pomocí programu „R“: vkládání textu, čeština
https://www.root.cz/clanky/grafy-pomoci-programu-r-vkladani-textu-cestina/ - Cesta erka: Krok nultý – instalace & nastavení – prostředí, projekty, package
https://www.jla-data.net/r4su/r4su-environment-setup/ - Cesta erka: Krok první – operace a struktury – proměnné, rovnítka a dolary
https://www.jla-data.net/r4su/r4su-data-structures/ - Cesta erka: Krok druhý – načtení externích dat – csvčka, excely a databáze
https://www.jla-data.net/r4su/r4su-read-data/ - Cesta erka: Krok třetí – manipulace s daty – dplyr, slovesa a pajpy
https://www.jla-data.net/r4su/r4su-manipulate-data/ - Cesta erka: Krok čtvrtý – podání výsledků – ggplot, geomy a estetiky
https://www.jla-data.net/r4su/r4su-report-results/ - Cesta erka: Krok pátý – case study – případ piva v Praze
https://www.jla-data.net/r4su/r4su-case-study-beer/ - V indexu popularity programovacích jazyků TIOBE překvapilo R, Go, Perl, Scratch a Rust
https://www.root.cz/zpravicky/v-indexu-popularity-programovacich-jazyku-tiobe-prekvapilo-r-go-perl-scratch-a-rust/ - Is R Programming SURGING in Popularity in 2020?
https://www.youtube.com/watch?v=Duwn-vImyXE - Using the R programming language in Jupyter Notebook
https://docs.anaconda.com/anaconda/navigator/tutorials/r-lang/ - Using R on Jupyter Notebook
https://dzone.com/articles/using-r-on-jupyternbspnotebook - Graphics, ggplot2
http://r4stats.com/examples/graphics-ggplot2/ - A Practice Data Set
https://r4stats.wordpress.com/examples/mydata/ - Shiny – galerie projektů
https://shiny.rstudio.com/gallery/ - Seriál Programovací jazyk Julia
https://www.root.cz/serialy/programovaci-jazyk-julia/ - Julia (front page)
http://julialang.org/ - Julia – repositář na GitHubu
https://github.com/JuliaLang/julia - Julia (programming language)
https://en.wikipedia.org/wiki/Julia_%28programming_language%29 - IJulia
https://github.com/JuliaLang/IJulia.jl - Introducing Julia
https://en.wikibooks.org/wiki/Introducing_Julia - Julia: the REPL
https://en.wikibooks.org/wiki/Introducing_Julia/The_REPL - Introducing Julia/Metaprogramming
https://en.wikibooks.org/wiki/Introducing_Julia/Metaprogramming - Month of Julia
https://github.com/DataWookie/MonthOfJulia - Learn X in Y minutes (where X=Julia)
https://learnxinyminutes.com/docs/julia/ - New Julia language seeks to be the C for scientists
http://www.infoworld.com/article/2616709/application-development/new-julia-language-seeks-to-be-the-c-for-scientists.html - Julia: A Fast Dynamic Language for Technical Computing
http://karpinski.org/publications/2012/julia-a-fast-dynamic-language - The LLVM Compiler Infrastructure
http://llvm.org/ - Julia: benchmarks
http://julialang.org/benchmarks/ - R Vector
https://www.datamentor.io/r-programming/vector/ - .R File Extension
https://fileinfo.com/extension/r - Lineární regrese
https://cs.wikipedia.org/wiki/Line%C3%A1rn%C3%AD_regrese - lm (funkce)
https://www.rdocumentation.org/packages/stats/versions/3.6.2/topics/lm - quit (funkce)
https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/quit - c (funkce)
https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/c - help (funkce)
https://www.rdocumentation.org/packages/utils/versions/3.6.2/topics/help - Shiny: Introduction to interactive documents
https://shiny.rstudio.com/articles/interactive-docs.html - R Release History 1997–2013
http://timelyportfolio.github.io/rCharts_timeline_r/ - R: atomic vectors
https://renenyffenegger.ch/notes/development/languages/R/data-structures/vector/ - 11 Best R Programming IDE and editors
https://www.dunebook.com/best-r-programming-ide/ - CRAN – The Comprehensive R Archive Network
https://cran.r-project.org/ - R – Arrays
https://www.tutorialspoint.com/r/r_arrays.htm - Array vs Matrix in R Programming
https://www.geeksforgeeks.org/array-vs-matrix-in-r-programming/?ref=rp - Online R Language IDE
https://www.jdoodle.com/execute-r-online/ - Execute R Online (R v3.4.1)
https://www.tutorialspoint.com/execute_r_online.php - Snippets: Run any R code you like. There are over twelve thousand R packages preloaded
https://rdrr.io/snippets/ - R Package Documentation
https://rdrr.io/ - Data Reshaping in R – Popular Functions to Organise Data
https://techvidvan.com/tutorials/data-reshaping-in-r/ - What is an R Data Frame?
https://magoosh.com/data-science/what-is-an-r-data-frame/ - What's a data frame?
https://campus.datacamp.com/courses/free-introduction-to-r/chapter-5-data-frames?ex=1 - data.frame
https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/data.frame - as.data.frame
https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/as.data.frame - table
https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/table - Python Pandas – DataFrame
https://www.tutorialspoint.com/python_pandas/python_pandas_dataframe.htm - The Pandas DataFrame: Make Working With Data Delightful
https://realpython.com/pandas-dataframe/ - Python | Pandas DataFrame
https://www.geeksforgeeks.org/python-pandas-dataframe/ - R – Factors
https://www.tutorialspoint.com/r/r_factors.htm - R – Scatterplots
https://www.tutorialspoint.com/r/r_scatterplots.htm - Quick guide to line types (lty) in R
https://www.benjaminbell.co.uk/2018/02/quick-guide-to-line-types-lty-in-r.html - Lattice C (Wikipedia)
https://en.wikipedia.org/wiki/Lattice_C - Lorenz Attractor in R
https://www.sixhat.net/lorenz-attractor-in-r.html - Small multiple
https://en.wikipedia.org/wiki/Small_multiple - Category:Infographics (infografika)
https://en.wikipedia.org/wiki/Category:Infographics - Trellis plots (pro Python)
https://subscription.packtpub.com/book/big_data_and_business_intelligence/9781784390150/4/ch04lvl1sec41/trellis-plots - Trellis (architecture)
https://en.wikipedia.org/wiki/Trellis_(architecture) - Izobara (meteorologie)
https://cs.wikipedia.org/wiki/Izobara_(meteorologie) - How to Create a Lattice Plot in R
https://www.dummies.com/programming/r/how-to-create-a-lattice-plot-in-r/ - Density estimation
https://en.wikipedia.org/wiki/Density_estimation - Sedm smrtelných statistických hříchů
http://dfens-cz.com/sedm-smrtelnych-statistickych-hrichu/ - Spurious correlations
https://tylervigen.com/spurious-correlations