Programování

Snadnější ggplot s balíčkem ggeasy R.

Balíček R vizualizace dat ggplot2 je extrémně výkonný a flexibilní. Není však vždy snadné si pamatovat, jak dělat každý úkol - zejména pokud nejste častým uživatelem. Jak změníte velikost názvu grafu? Jak odstraníte tituly legend? Mým obvyklým řešením je ukládat fragmenty kódu RStudio pro věci, které si nepamatuji. Existuje ale také balíček, který vám může pomoci: ggeasy.

Jak název napovídá, cílem ggeasy je usnadnit ggplot2 - nebo alespoň EASIehm. Má to, co někteří lidé mohou považovat za intuitivnější funkce pro typické úkoly, většinou kolem formátování textu a os. (Tento balíček nemá vliv na způsob čáry, body a pruhy vypadat a chovat se). Všechny funkce ggeasy začínají snadný_ takže je snadné je najít pomocí automatického doplňování RStudio. Jak to funguje, uvidíte ve videu výše.

Pokud byste chtěli následovat můj příklad níže, ggeasy je na CRAN, takže si jej můžete nainstalovat pomocí install.packages ("ggeasy"). Budu také používat balíčky ggplot2 (přirozeně), dplyr, rio a lubridate. Později přidám patchworkový balíček pro super jednoduché umístění více grafů; to je také na CRAN.

V tomto příkladu použiji data o tom, co dnes myslí většina lidí: koronavirus. Můžete si stáhnout soubor CSV s daty podle amerického státu z projektu Coronavirus Tracking Project s

download.file ("// covidtracking.com/api/states/daily.csv",

destfile = "covid19.csv")

(Můžete pojmenovat destilát cílový soubor, co chcete.) Použil jsem rio :: import () importovat data, ale můžete také použít readr :: read_csv (), read.csv (), data.table :: fread ()nebo jakoukoli jinou funkci pro import souboru CSV.

S rio přišla data jako celá čísla, takže použiji lubridate's ymd () funkce, která změní tento sloupec na objekty Date:

data $ date <- lubridate :: ymd (data $ date)

Abych vytvořil graf, který není příliš obtížné pochopit, odfiltruji tato data pouze pro několik stavů, takže neexistuje 50 samostatných řádků časových řad. Vybral jsem si Louisianu, abych viděl nárůst případů - guvernér Louisiany uvedl, že stát patří mezi nejrychlejší růst případů na světě. (Existují spekulace, že v únoru mohla Mardi Gras způsobit shluk v New Orleans.) Přidám také Massachusetts, stát s přibližně o 50 procent více lidí než Louisiana, protože tam sídlím.

Po filtrování dat vytvořím základní spojnicový graf dat:

state2 <- filtr (data, stav% v% c ("LA", "MA"))

ggplot (stavy2, aes (x = datum, y = pozitivní, barva = stav)) +

geom_line () +

geom_point () +

téma_minimální () +

ggtitle („Lousiana & Massachusetts Daily Covid-19 Cases“)

Sharon Machlis,

To je docela prudký nárůst. Něco z toho může být způsobeno nárůstem testování - možná jen znát o více případech, protože testování zrychlilo. Podívám se na to za minutu.

Nejprve však, co třeba pár vylepšení tohoto grafu?

Začněme zvětšením názvu grafu. Abych použil ggeasy, začal bych psát snadný_ v levém horním zdrojovém panelu RStudio a posouvejte, dokud nenajdu, co chci.

Sharon Machlis,

easy_plot_title_size () vypadá jako funkce, kterou potřebuji. Pomocí tohoto kódu mohu změnit název grafu na 16bodový typ:

ggplot (stavy2, aes (x = datum, y = pozitivní, barva = stav)) +

geom_line () +

geom_point () +

téma_minimální () +

ggtitle („Lousiana & Massachusetts Daily Covid-19 Cases“) +

easy_plot_title_size (16)

Dokážu otočit text v ose x pomocí easy_rotate_x_labels (90) pro rotaci o 90 stupňů a odstraňte název legendy (je docela zřejmé, že jde o stavy) pomocí easy_remove_legend_title (). Celý kód grafu je níže, včetně uložení grafu do proměnné s názvem pozitiva.

pozitiva <- ggplot (stavy2, aes (x = datum, y = pozitivní, barva = stav)) +

geom_line () +

geom_point () +

téma_minimální () +

ggtitle („Lousiana & Massachusetts Daily Covid-19 Cases“) +

easy_plot_title_size (16) +

easy_rotate_x_labels (90) +

easy_remove_legend_title ()

Sharon Machlis,

Dále bych se rád podíval na záporný výsledky testů na koronaviry, aby se zjistilo, zda rostou podobnou rychlostí jako pozitivní. Použiji stejný kód, ale přepnu sloupec y na negativy.

negativy <- ggplot (stavy2, aes (x = datum, y = záporný, color = state)) +

geom_line () +

geom_point () +

téma_minimální () +

ggtitle ("Lousiana & Massachusetts Negatives") +

easy_plot_title_size (16) +

easy_rotate_x_labels (90) +

easy_remove_x_axis ("název") +

easy_remove_y_axis ("název") +

easy_remove_legend_title ()

Sharon Machlis,

Zdá se, že v Louisianě dochází k většímu nárůstu pozitiv než negativ. Ačkoli nevíme, jestli je to proto, že se změnila testovací kritéria nebo něco jiného.

Bylo by užitečné vidět tyto dva grafy vedle sebe. Tam přichází balíček patchwork.

Pouze s těmito dvěma řádky kódu první načtení balíčku patchwork:

knihovna („patchwork“)

pozitiva + negativa

Mám toto:

Sharon Machlis,

Je neuvěřitelně snadné umístit více grafů pomocí patchwork. Další informace o přizpůsobení rozvržení najdete na webu patchwork.

Nyní se mohu vrátit a pomocí ggeasy odstranit jednu z legend, takže nejsou dvě, a poté znovu spustit patchwork:

negativy <- negativy +

easy_remove_legend ()

pozitiva + negativa

Je zřejmé, že ggeasy je docela užitečný pro rychlý a snadný průzkum dat!

Další tipy R najdete na stránce „Do More With R“ na stránce YouTube nebo v seznamu „Do More With R“.

$config[zx-auto] not found$config[zx-overlay] not found