Grafy sú treťou časťou procesu analýzy údajov. Prvá časť je o extrakcii dát , druhá časť sa venuje čisteniu a manipulácii s dátami . Nakoniec bude možno potrebné, aby vedec zaoberajúci sa údajmi svoje výsledky graficky komunikoval .
Úlohu dátového vedca možno preskúmať na nasledujúcom obrázku
- Prvou úlohou dátového vedca je definovať výskumnú otázku. Táto výskumná otázka závisí od zámerov a zámerov projektu.
- Potom je jednou z najvýznamnejších úloh inžinierstvo funkcií. Vedec zaoberajúci sa údajmi musí údaje zhromaždiť, manipulovať s nimi a vyčistiť ich
- Po dokončení tohto kroku môže začať skúmať množinu údajov. Niekedy je potrebné z dôvodu nového objavu spresniť a zmeniť pôvodnú hypotézu.
- Keď sa dosiahne vysvetľujúca analýza, musí vedec zaoberajúci sa údajmi vziať do úvahy schopnosť čitateľa pochopiť základné pojmy a modely .
- Jeho výsledky by mali byť prezentované vo formáte, ktorému rozumejú všetky zúčastnené strany. Jednou z najlepších metód na komunikáciu výsledkov je graf .
- Grafy sú neuveriteľným nástrojom na zjednodušenie zložitej analýzy.
V tomto návode sa naučíte
- balíček ggplot2
- Bodový diagram
- Zmeniť os
- Bodový graf s prispôsobenými hodnotami
- Pridajte informácie do grafu
- Premenujte os x a os y
- Ovládajte váhy
- Téma
- Uložiť pozemky
balíček ggplot2
Táto časť tutoriálu sa zameriava na to, ako vytvárať grafy / tabuľky s R.
V tomto výučbe budete používať balík ggplot2. Tento balík je postavený na konzistentnom základe knihy Gramatika grafiky, ktorú napísal Wilkinson, 2005. ggplot2 je veľmi flexibilný, obsahuje veľa tém a špecifikáciu deja na vysokej úrovni abstrakcie. Pomocou ggplot2 nemôžete vykresľovať trojrozmernú grafiku a vytvárať interaktívne grafiky.
V ggplot2 sa graf skladá z nasledujúcich argumentov:
- údaje
- estetické mapovanie
- geometrický objekt
- štatistické transformácie
- váhy
- súradnicový systém
- úpravy polohy
- fazetovanie
Ako ovládať tieto argumenty sa dozviete v tutoriále.
Základná syntax ggplot2 je:
ggplot(data, mapping=aes()) +geometric objectarguments:data: Dataset used to plot the graphmapping: Control the x and y-axisgeometric object: The type of plot you want to show. The most common object are:- Point: `geom_point()`- Bar: `geom_bar()`- Line: `geom_line()`- Histogram: `geom_histogram()`
Bodový diagram
Pozrime sa, ako ggplot pracuje s množinou údajov mtcars. Začnete vykreslením bodového grafu premenných mpg a drat.
Základný bodový graf
library(ggplot2)ggplot(mtcars, aes(x = drat, y = mpg)) +geom_point()
Vysvetlenie kódu
- Najprv odovzdáte dátovú množinu mtcars do ggplot.
- Do argumentu aes () pridáte osi x a y.
- Znamienko + znamená, že chcete, aby kód R naďalej čítal. Zvyšuje čitateľnosť kódu jeho rozbitím.
- Použite geom_point () pre geometrický objekt.
Výkon:
Bodový graf so skupinami
Niekedy môže byť zaujímavé rozlíšiť hodnoty podľa skupiny údajov (tj. Údaje na úrovni faktora).
ggplot(mtcars, aes(x = mpg, y = drat)) +geom_point(aes(color = factor(gear)))
Vysvetlenie kódu
- Aes () vo vnútri geom_point () riadi farbu skupiny. Skupina by mala byť premennou faktora. Takto preradíte variabilný prevodový stupeň.
- Celkovo máte kód aes (color = factor (gear)), ktorý mení farbu bodiek.
Výkon:
Zmeniť os
Zmena mierky údajov je veľkou časťou práce dátového vedca. V ojedinelých prípadoch majú dáta pekný tvar zvona. Jedným z riešení na zníženie citlivosti vašich údajov na odľahlé hodnoty je ich zmena mierky.
ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear)))
Vysvetlenie kódu
- Premenné x a y transformujete v log () priamo vo vnútri mapovania aes ().
Upozorňujeme, že je možné použiť akúkoľvek inú transformáciu, napríklad štandardizáciu alebo normalizáciu.
Výkon:
Bodový graf s prispôsobenými hodnotami
Do grafu môžete pridať ďalšiu úroveň informácií. Môžete vykresliť prispôsobenú hodnotu lineárnej regresie.
my_graph <- ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear))) +stat_smooth(method = "lm",col = "#C42126",se = FALSE,size = 1)my_graph
Vysvetlenie kódu
- graf: Uložíte svoj graf do premenného grafu. Je užitočné ho ďalej používať alebo sa vyhnúť príliš zložitému riadku kódov
- Argument stat_smooth () riadi metódu vyhladzovania
- method = "lm": Lineárna regresia
- col = "# C42126": Kód červenej farby čiary
- se = FALSE: Nezobrazovať štandardnú chybu
- size = 1: veľkosť riadku je 1
Výkon:
Upozorňujeme, že sú k dispozícii aj ďalšie spôsoby vyhladzovania
- glm
- gam
- spraše: predvolená hodnota
- ráfik
Pridajte informácie do grafu
Doteraz sme do grafov nepridávali informácie. Grafy musia byť informatívne. Čitateľ by mal vidieť príbeh za analýzou dát už len pri pohľade na graf bez odkazovania na ďalšiu dokumentáciu. Grafy preto potrebujú dobré štítky. Môžete pridať štítky s funkciou labs ().
Základná syntax pre lab () je:
lab(title = "Hello Guru99")argument:- title: Control the title. It is possible to change or add title with:- subtitle: Add subtitle below title- caption: Add caption below the graph- x: rename x-axis- y: rename y-axisExample:lab(title = "Hello Guru99", subtitle = "My first plot")
Pridajte nadpis
Jednou z povinných informácií, ktoré je potrebné pridať, je zjavne názov.
my_graph +labs(title = "Plot Mile per hours and drat, in log")
Vysvetlenie kódu
- my_graph: Používaš uložený graf. Zabráni prepisovaniu všetkých kódov zakaždým, keď do grafu pridáte nové informácie.
- Titul zabalíte do laboratória ().
- Kód červenej farby čiary
- se = FALSE: Nezobrazovať štandardnú chybu
- size = 1: veľkosť riadku je 1
Výkon:
Pridajte názov s dynamickým názvom
Dynamický názov pomáha pridať do názvu presnejšie informácie.
Na tlač statického a dynamického textu môžete použiť funkciu paste (). Základná syntax paste () je:
paste("This is a text", A)arguments- " ": Text inside the quotation marks are the static text- A: Display the variable stored in A- Note you can add as much static text and variable as you want. You need to separate them with a comma
Príklad:
A <-2010paste("The first year is", A)
Výkon:
## [1] "The first year is 2010"
B <-2018paste("The first year is", A, "and the last year is", B)
Výkon:
## [1] "The first year is 2010 and the last year is 2018"
Do nášho grafu môžete pridať dynamický názov, a to priemer mpg.
mean_mpg <- mean(mtcars$mpg)my_graph + labs(title = paste("Plot Mile per hours and drat, in log. Average mpg is", mean_mpg))
Vysvetlenie kódu
- Vytvoríte priemer mpg s priemerom (mtcars $ mpg) uloženým v premennej mean_mpg
- Pomocou paste () s mean_mpg vytvoríte dynamický nadpis, ktorý vráti strednú hodnotu mpg
Výkon:
Pridajte podtitul
Vďaka dvom ďalším podrobnostiam môže byť váš graf explicitnejší. Hovoríte o podnadpise a titulku. Podnadpis ide priamo pod nadpis. Titulky môžu informovať o tom, kto vykonal výpočet, a zdroji údajov.
my_graph +labs(title ="Relation between Mile per hours and drat",subtitle ="Relationship break down by gear class",caption = "Authors own computation")
Vysvetlenie kódu
- Do laboratória () ste pridali:
- title = "Vzťah medzi míľami za hodinu a bratom": Pridajte názov
- subtitle = "Rozdelenie vzťahov podľa triedy prevodových stupňov": Pridať titulky
- caption = "Vlastný výpočet autorov: Pridajte titulok
- Každú novú informáciu oddelíte čiarkou,,
- Upozorňujeme, že porušujete riadky kódu. Nie je to povinné a iba to pomôže ľahšie načítať kód
Výkon:
Premenujte os x a os y
Samotné premenné v množine údajov nemusia byť vždy explicitné alebo podľa konvencie použite znak _, ak existuje viac slov (napr. GDP_CAP). Nechcete, aby sa takéto meno objavilo vo vašom grafe. Je dôležité zmeniť názov alebo pridať ďalšie podrobnosti, napríklad jednotky.
my_graph +labs(x = "Drat definition",y = "Mile per hours",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")
Vysvetlenie kódu
- Do laboratória () ste pridali:
- x = "Drat definition": Zmeňte názov osi x
- y = "Míľa za hodinu": Zmeňte názov osi y
Výkon:
Ovládajte váhy
Môžete ovládať mierku osi.
Funkcia seq () je vhodná, keď potrebujete vytvoriť postupnosť čísel. Základná syntax je:
seq(begin, last, by = x)arguments:- begin: First number of the sequence- last: Last number of the sequence- by= x: The step. For instance, if x is 2, the code adds 2 to `begin-1` until it reaches `last`
Napríklad, ak chcete vytvoriť rozsah od 0 do 12 s krokom 3, budete mať štyri čísla, 0 4 8 12
seq(0, 12,4)
Výkon:
## [1] 0 4 8 12
Mierku osi x a osi y môžete ovládať nižšie
my_graph +scale_x_continuous(breaks = seq(1, 3.6, by = 0.2)) +scale_y_continuous(breaks = seq(1, 1.6, by = 0.1)) +labs(x = "Drat definition",y = "Mile per hours",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")
Vysvetlenie kódu
- Funkcia scale_y_continuous () riadi os y
- Funkcia scale_x_continuous () riadi os x .
- Konce parametrov riadia rozdelenie osi. Poradie čísel môžete pridať manuálne alebo použiť funkciu seq ():
- seq (1, 3,6, o = 0,2): Vytvorte šesť čísel od 2,4 do 3,4 s krokom 3
- seq (1, 1,6, o = 0,1): Vytvorte sedem čísel od 1 do 1,6 s krokom 1
Výkon:
Téma
Nakoniec nám R umožňuje prispôsobiť sprisahanie s rôznymi témami. Knižnica ggplot2 obsahuje osem tém:
- theme_bw ()
- theme_light ()
- theme_classis ()
- theme_linedraw ()
- theme_dark ()
- téma_minimálne ()
- theme_gray ()
- theme_void ()
my_graph +theme_dark() +labs(x = "Drat definition, in log",y = "Mile per hours, in log",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")
Výkon:
Uložiť pozemky
Po všetkých týchto krokoch je čas uložiť a zdieľať svoj graf. Hneď po vykreslení grafu pridáte ggsave ('NÁZOV SÚBORU) a uloží sa na pevný disk.
Graf je uložený v pracovnom adresári. Ak chcete skontrolovať pracovný adresár, môžete spustiť tento kód:
directory <-getwd()directory
Poďme nakresliť váš fantastický graf, uložíme ho a skontrolujeme polohu
my_graph +theme_dark() +labs(x = "Drat definition, in log",y = "Mile per hours, in log",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")
Výkon:
ggsave("my_fantastic_plot.png.webp")
Výkon:
## Saving 5 x 4 in image
Poznámka : Len na pedagogické účely sme vytvorili funkciu nazvanú open_folder (), aby sme vám otvorili priečinok adresára. Musíte len spustiť kód uvedený nižšie a zistiť, kde je obrázok uložený. Mali by ste vidieť názvy súborov my_fantastic_plot.png.webp.
# Run this code to create thefunctionopen_folder <- function(dir) {if (.Platform['OS.type'] == "windows") {shell.exec(dir)} else {system(paste(Sys.getenv("R_BROWSER"), dir))}}# Call thefunction to open the folder open_folder(directory)
Zhrnutie
Argumenty na vytvorenie bodového grafu môžete zhrnúť v nasledujúcej tabuľke:
Cieľ |
Zákonníka |
---|---|
Základný bodový graf |
ggplot(df, aes(x = x1, y = y)) + geom_point() |
Bodový graf s farebnou skupinou |
ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) + stat_smooth(method = "lm") |
Pridajte prispôsobené hodnoty |
ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) |
Pridať názov |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(title = paste("Hello Guru99")) |
Pridajte podnadpis |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(subtitle = paste("Hello Guru99")) |
Premenovať x |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(x = "X1") |
Premenujte y |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(y = "y1") |
Ovládajte mierku |
ggplot(df, aes(x = x1, y = y)) + geom_point() + scale_y_continuous(breaks = seq(10, 35, by = 10)) + scale_x_continuous(breaks = seq(2, 5, by = 1) |
Vytvorte denníky |
ggplot(df, aes(x =log(x1), y = log(y))) + geom_point() |
Téma |
ggplot(df, aes(x = x1, y = y)) + geom_point() + theme_classic() |
Uložiť |
ggsave("my_fantastic_plot.png.webp") |