Grafy jsou třetí částí procesu analýzy dat. První část je o extrakci dat , druhá část se zabývá čištěním a manipulací s daty . Nakonec bude možná nutné, aby vědec v oblasti dat své výsledky sdělil graficky .
Úlohu datového vědce lze shrnout na následujícím obrázku
- Prvním úkolem datového vědce je definovat výzkumnou otázku. Tato výzkumná otázka závisí na cílech a cílech projektu.
- Poté je jedním z nejvýznamnějších úkolů inženýrství funkcí. Vědec zabývající se daty musí sbírat, manipulovat a čistit data
- Po dokončení tohoto kroku může začít zkoumat datovou sadu. Někdy je nutné zdokonalit a změnit původní hypotézu kvůli novému objevu.
- Po dosažení vysvětlující analýzy musí datový vědec zvážit schopnost čtenáře porozumět základním konceptům a modelům .
- Jeho výsledky by měly být prezentovány ve formátu, kterému budou rozumět všechny zúčastněné strany. Jednou z nejlepších metod komunikace výsledků je graf .
- Grafy jsou neuvěřitelným nástrojem ke zjednodušení složité analýzy.
V tomto výukovém programu se naučíte
- balíček ggplot2
- Bodový diagram
- Změnit osu
- Bodový graf s přizpůsobenými hodnotami
- Přidejte informace do grafu
- Přejmenujte osu xa osu y
- Ovládejte váhy
- Téma
- Uložit pozemky
balíček ggplot2
Tato část tutoriálu se zaměřuje na to, jak vytvářet grafy / grafy s R.
V tomto výukovém programu budete používat balíček ggplot2. Tento balíček je postaven na konzistentním podkladu knihy Grammar of graphics napsané Wilkinsonom, 2005. ggplot2 je velmi flexibilní, obsahuje mnoho témat a specifikaci zápletky na vysoké úrovni abstrakce. S ggplot2 nemůžete vykreslovat trojrozměrnou grafiku a vytvářet interaktivní grafiku.
V ggplot2 se graf skládá z následujících argumentů:
- data
- estetické mapování
- geometrický objekt
- statistické transformace
- váhy
- souřadnicový systém
- nastavení polohy
- fazetování
Naučíte se ovládat tyto argumenty v kurzu.
Základní syntaxe 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
Podívejme se, jak ggplot funguje s datovou sadou mtcars. Začnete vykreslením bodového grafu proměnných mpg a drat.
Základní bodový diagram
library(ggplot2)ggplot(mtcars, aes(x = drat, y = mpg)) +geom_point()
Vysvětlení kódu
- Nejprve předáte datovou sadu mtcars ggplot.
- Uvnitř argumentu aes () přidáte osu x a osu y.
- Znaménko + znamená, že chcete, aby kód R pokračoval ve čtení. Díky čitelnosti je kód čitelnější.
- Použijte geom_point () pro geometrický objekt.
Výstup:
Bodový graf se skupinami
Někdy může být zajímavé odlišit hodnoty podle skupiny dat (tj. Dat na úrovni faktoru).
ggplot(mtcars, aes(x = mpg, y = drat)) +geom_point(aes(color = factor(gear)))
Vysvětlení kódu
- Aes () uvnitř geom_point () řídí barvu skupiny. Skupinou by měla být proměnná faktoru. Tímto způsobem převádíte proměnný rychlostní stupeň.
- Celkově máte kód aes (color = factor (gear)), který mění barvu teček.
Výstup:
Změnit osu
Změna měřítka dat je velkou součástí práce datového vědce. Ve výjimečných případech přicházejí data v pěkném tvaru zvonu. Jedním z řešení, jak snížit citlivost dat na odlehlé hodnoty, je změnit jejich měřítko.
ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear)))
Vysvětlení kódu
- Proměnné x a y transformujete v log () přímo uvnitř mapování aes ().
Lze použít jakoukoli jinou transformaci, jako je standardizace nebo normalizace.
Výstup:
Bodový graf s přizpůsobenými hodnotami
Do grafu můžete přidat další úroveň informací. Můžete vykreslit přizpůsobenou hodnotu lineární regrese.
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
Vysvětlení kódu
- graf: Uložíte svůj graf do proměnného grafu. Je užitečné pro další použití nebo se vyhněte příliš složitému řádku kódů
- Argument stat_smooth () řídí vyhlazovací metodu
- method = "lm": Lineární regrese
- col = "# C42126": Kód červené barvy řádku
- se = FALSE: Nezobrazovat standardní chybu
- size = 1: velikost řádku je 1
Výstup:
Všimněte si, že jsou k dispozici další metody vyhlazování
- glm
- gam
- spraše: výchozí hodnota
- okraj
Přidejte informace do grafu
Zatím jsme do grafů nepřidávali informace. Grafy musí být informativní. Čtenář by měl vidět příběh za analýzou dat pouhým pohledem na graf bez odkazování na další dokumentaci. Grafy tedy potřebují dobré štítky. Můžete přidat štítky s funkcí labs ().
Základní syntaxe pro 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")
Přidejte název
Jedna povinná informace, kterou je třeba přidat, je samozřejmě název.
my_graph +labs(title = "Plot Mile per hours and drat, in log")
Vysvětlení kódu
- my_graph: Používáte uložený graf. Zabraňuje přepsání všech kódů pokaždé, když do grafu přidáte nové informace.
- Titul zabalíte do laboratoře ().
- Kód pro červenou barvu čáry
- se = FALSE: Nezobrazovat standardní chybu
- size = 1: velikost řádku je 1
Výstup:
Přidejte název s dynamickým názvem
Dynamický nadpis je užitečný pro přidání přesnějších informací do nadpisu.
Funkci paste () můžete použít k tisku statického a dynamického textu. Základní syntaxe 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
Příklad:
A <-2010paste("The first year is", A)
Výstup:
## [1] "The first year is 2010"
B <-2018paste("The first year is", A, "and the last year is", B)
Výstup:
## [1] "The first year is 2010 and the last year is 2018"
Do našeho grafu můžete přidat dynamický název, jmenovitě průměr mpg.
mean_mpg <- mean(mtcars$mpg)my_graph + labs(title = paste("Plot Mile per hours and drat, in log. Average mpg is", mean_mpg))
Vysvětlení kódu
- Vytvoříte průměr mpg se střední hodnotou (mtcars $ mpg) uloženou v proměnné mean_mpg
- Pomocí paste () s mean_mpg vytvoříte dynamický nadpis, který vrací střední hodnotu mpg
Výstup:
Přidejte podtitul
Díky dvěma dalším detailům může být váš graf explicitnější. Mluvíte o titulcích a titulcích. Podnadpis jde přímo pod nadpisem. Titulek může informovat o tom, kdo provedl výpočet a zdroj dat.
my_graph +labs(title ="Relation between Mile per hours and drat",subtitle ="Relationship break down by gear class",caption = "Authors own computation")
Vysvětlení kódu
- Uvnitř laboratoře () jste přidali:
- title = "Vztah mezi mílí za hodinu a dratem": Přidat název
- subtitle = "Rozdělení vztahů podle třídy zařízení": Přidat podtitul
- caption = "Vlastní výpočet autorů: Přidat titulek
- Každou novou informaci oddělujete čárkou,
- Všimněte si, že lámete řádky kódu. Není to povinné a pomůže to snadněji číst kód
Výstup:
Přejmenujte osu xa osu y
Samotné proměnné v datové sadě nemusí být vždy explicitní nebo podle konvence použijte _, pokud existuje více slov (tj. GDP_CAP). Nechcete, aby se takové jméno objevilo ve vašem grafu. Je důležité změnit název nebo přidat další podrobnosti, napří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")
Vysvětlení kódu
- Uvnitř laboratoře () jste přidali:
- x = "Definice Drat": Změní název osy x
- y = "Míle za hodinu": Změňte název osy y
Výstup:
Ovládejte váhy
Můžete ovládat měřítko osy.
Funkce seq () je vhodná, když potřebujete vytvořit posloupnost čísel. Základní syntaxe 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`
Například pokud chcete vytvořit rozsah od 0 do 12 s krokem 3, budete mít čtyři čísla, 0 4 8 12
seq(0, 12,4)
Výstup:
## [1] 0 4 8 12
Měřítko osy xa osy y můžete ovládat níže
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")
Vysvětlení kódu
- Funkce scale_y_continuous () ovládá osu y
- Funkce scale_x_continuous () ovládá osu x .
- Konce parametrů řídí rozdělení osy. Pořadí čísel můžete přidat ručně nebo použít funkci seq ():
- seq (1, 3,6, o = 0,2): Vytvořte šest čísel od 2,4 do 3,4 s krokem 3
- seq (1, 1,6, o = 0,1): Vytvořte sedm čísel od 1 do 1,6 s krokem 1
Výstup:
Téma
Nakonec nám R umožňuje přizpůsobit spiknutí s různými tématy. Knihovna ggplot2 obsahuje osm témat:
- theme_bw ()
- theme_light ()
- theme_classis ()
- theme_linedraw ()
- theme_dark ()
- téma_minimální ()
- 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ýstup:
Uložit pozemky
Po všech těchto krocích je čas graf uložit a sdílet. Hned po vykreslení grafu přidáte ggsave ('NÁZEV SOUBORU) a ten se uloží na pevný disk.
Graf se uloží do pracovního adresáře. Chcete-li zkontrolovat pracovní adresář, můžete spustit tento kód:
directory <-getwd()directory
Pojďme nakreslit váš fantastický graf, uložit jej a zkontrolovat umístění
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ýstup:
ggsave("my_fantastic_plot.png.webp")
Výstup:
## Saving 5 x 4 in image
Poznámka : Pouze pro pedagogické účely jsme vytvořili funkci nazvanou open_folder (), která vám otevře adresářovou složku. Musíte pouze spustit níže uvedený kód a zjistit, kde je obrázek uložen. Měli byste vidět názvy souborů 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)
souhrn
Argumenty pro vytvoření bodového grafu můžete shrnout v následující tabulce:
Objektivní |
Kód |
---|---|
Základní bodový diagram |
ggplot(df, aes(x = x1, y = y)) + geom_point() |
Bodový graf se skupinou barev |
ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) + stat_smooth(method = "lm") |
Přidejte přizpůsobené hodnoty |
ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) |
Přidat titulek |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(title = paste("Hello Guru99")) |
Přidat titulky |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(subtitle = paste("Hello Guru99")) |
Přejmenovat x |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(x = "X1") |
Přejmenujte y |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(y = "y1") |
Ovládejte měřítko |
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) |
Vytvářejte protokoly |
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žit |
ggsave("my_fantastic_plot.png.webp") |