Programiranje

Preprostejši ggplot s paketom ggeasy R

Paket za vizualizacijo podatkov ggplot2 R je izjemno zmogljiv in prilagodljiv. Vendar si ni vedno lahko zapomniti, kako opraviti vsako nalogo - še posebej, če niste pogost uporabnik. Kako spremenite velikost naslova grafa? Kako odstranim naslove legende? Moja običajna rešitev je, da odrezke kode RStudio shranim za stvari, ki si jih težko zapomnim. Obstaja pa tudi paket, ki vam lahko pomaga: ggeasy.

Kot že ime pove, je cilj ggeasy, no, olajšati ggplot2 - ali vsaj easyihja. Nekaterim se zdijo bolj intuitivne funkcije za običajna opravila, večinoma okoli oblikovanja besedila in osi. (Ta paket ne vpliva na način črte, točke in vrstice videti in se obnašati). Vse ggeasy funkcije se začnejo z enostavno_ tako da jih je enostavno najti z uporabo samodokončanja RStudio. Kako to deluje, lahko vidite v zgornjem videoposnetku.

Če želite slediti mojemu spodnjemu primeru, je ggeasy na CRAN, zato ga lahko namestite s install.packages ("ggeasy"). Uporabil bom tudi pakete ggplot2 (naravno), dplyr, rio in lubridate. Kasneje bom dodal paket patchwork za super preprosto postavitev več grafov; to je tudi na CRAN-u.

Za ta primer bom uporabil podatke o tem, kar je danes v mislih večini ljudi: koronavirus. Datoteko CSV s podatki ameriške zvezne države lahko prenesete iz projekta za sledenje koronavirusu s

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

destfile = "covid19.csv")

(Lahko poimenujete destfile ciljno datoteko karkoli želite.) Uporabil sem rio :: import () za uvoz podatkov, lahko pa tudi uporabite readr :: read_csv (), read.csv (), data.table :: fread ()ali katero koli drugo funkcijo za uvoz CSV.

Z rio so bili datumi v obliki celih števil, zato bom uporabil lubridate ymd () funkcija za pretvorbo tega stolpca v predmete Date:

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

Če želite ustvariti graf, ki ga ni preveč težko razumeti, bom te podatke filtriral le za nekaj stanj, tako da ne bo 50 ločenih vrstic časovnih vrst. Izbral sem Louisiano, da bi videl naraščati število primerov - guverner Louisiane je dejal, da ima država med najhitrejšimi rastmi primerov na svetu. (Ugibajo se, da bi Mardi Gras februarja morda povzročil grozd v New Orleansu.) Dodal bom še Massachusetts, zvezno državo s približno 50 odstotkov več prebivalcev kot Louisiana, saj imam tam sedež.

Po filtriranju podatkov bom ustvaril osnovni grafikon podatkov:

state2 <- filter (podatki, stanje% v% c ("LA", "MA"))

ggplot (stanja2, aes (x = datum, y = pozitiven, barva = stanje)) +

geom_line () +

geom_point () +

tema_minimalna () +

ggtitle ("Lousiana & Massachusetts Daily Covid-19 Cases")

Sharon Machlis,

To je precej strmo povečanje. Nekatere od teh so lahko posledica večjega števila testiranj - morda samo vem približno več primerov, ker se je testiranje povečalo. To bom pogledal čez minuto.

Najprej, kaj pa nekaj popravkov tega grafa?

Začnimo tako, da povečamo naslov grafa. Če bi uporabil ggeasy, bi začel tipkati enostavno_ v zgornjem levem podoknu RStudio in se pomikajte, dokler ne najdem, kar želim.

Sharon Machlis,

easy_plot_title_size () izgleda kot funkcija, ki jo potrebujem. S to kodo lahko naslov grafa spremenim v 16-točkovni:

ggplot (stanja2, aes (x = datum, y = pozitiven, barva = stanje)) +

geom_line () +

geom_point () +

tema_minimalna () +

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

easy_plot_title_size (16)

Besedilo osi x lahko zasučem z easy_rotate_x_labels (90) za 90-stopinjsko rotacijo in odstranite naslov legende (precej očitno je, da so to stanja) z easy_remove_legend_title (). Celotna koda grafa je spodaj, vključno s shranjevanjem grafa v spremenljivko z imenom pozitivne.

pozitivne <- ggplot (stanja2, aes (x = datum, y = pozitiven, barva = stanje)) +

geom_line () +

geom_point () +

tema_minimalna () +

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

easy_plot_title_size (16) +

easy_rotate_x_labels (90) +

easy_remove_legend_title ()

Sharon Machlis,

Nato bi rad pogledal negativno rezultate testa za koronavirus, da bi ugotovili, ali rastejo s podobnimi stopnjami kot pozitivni. Uporabil bom isto kodo, a samo preklopil stolpec y na negativne strani.

negativi <- ggplot (stanja2, aes (x = datum, y = negativno, barva = stanje)) +

geom_line () +

geom_point () +

tema_minimalna () +

ggtitle ("Negativni elementi Lousiane in Massachusettsa") +

easy_plot_title_size (16) +

easy_rotate_x_labels (90) +

easy_remove_x_axis ("naslov") +

easy_remove_y_axis ("naslov") +

easy_remove_legend_title ()

Sharon Machlis,

Zdi se, da je v Louisiani večji pozitiv kot negativ. Čeprav ne vemo, ali je to zato, ker so se merila za testiranje spremenila ali kaj drugega.

Koristno bi bilo videti ta dva grafa drug ob drugem. Tu pride na vrsto patchwork paket.

Samo s tema dvema vrsticama kode se najprej naloži paket patchwork:

knjižnica ("patchwork")

pozitivni + negativni

Razumem:

Sharon Machlis,

Neverjetno enostavno je postaviti več grafov s patchworkom. Če želite več informacij o prilagajanju postavitev, pojdite na spletno mesto patchwork.

Zdaj se lahko vrnem nazaj in z ggeasy odstranim eno od legend, da ne bosta dve, in nato znova zaženem patchwork:

negativi <- negativi +

easy_remove_legend ()

pozitivni + negativni

Jasno je, da je ggeasy zelo koristen za hitro in enostavno raziskovanje podatkov!

Če želite več nasvetov R, pojdite na stran »Naredite več z R« na seznamu predvajanja YouTube ali pa si oglejte »Naredi več z R«.

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