Ggplot2 R-pakke for datavisualisering er ekstremt kraftig og fleksibel. Det er imidlertid ikke alltid lett å huske hvordan du gjør hver oppgave - spesielt hvis du ikke er en hyppig bruker. Hvordan endrer du størrelsen på en graftittel? Hvordan fjerner du legende titler? Min vanlige løsning er å lagre RStudio-kodebiter for ting jeg har problemer med å huske. Men det er også en pakke som kan hjelpe: ggeasy.
Som navnet sier, er målet med ggeasy å, vel, gjøre ggplot2 enkelt - eller i det minste easier. Det har det noen mennesker kan synes å være mer intuitive funksjoner for typiske oppgaver, mest rundt tekst og akseformatering. (Denne pakken påvirker ikke måten linjer, punkter og søyler se og oppføre deg). Alle ggeasy-funksjoner starter med lett_
så det er, ja, lett å finne dem ved hjelp av RStudio autofullføring. Du kan se hvordan det fungerer i videoen ovenfor.
Hvis du vil følge med eksemplet mitt nedenfor, er ggeasy på CRAN, så du kan installere det med install.packages ("ggeasy")
. Jeg bruker også pakkene ggplot2 (naturlig), dplyr, rio og lubridate. Senere vil jeg legge til patchwork-pakken for superenkel plassering av flere grafer; det er også på CRAN.
For dette eksemplet skal jeg bruke data om hva som de fleste tenker på i disse dager: coronavirus. Du kan laste ned en CSV-fil med data fra amerikanske stater fra Coronavirus Tracking Project med
download.file ("// covidtracking.com/api/states/daily.csv",destfile = "covid19.csv")
(Du kan gi navnet destfile destinasjonsfilen alt du vil.) Jeg brukte rio :: import ()
for å importere dataene, men du kan også bruke readr :: read_csv ()
, read.csv ()
, data.table :: fread ()
eller annen funksjon for å importere CSV.
Med rio kom datoene inn som heltall, så jeg bruker lubridate ymd ()
funksjon for å gjøre kolonnen til datoobjekter:
data $ date <- lubridate :: ymd (data $ date)
For å lage en graf som ikke er for vanskelig å forstå, filtrerer jeg disse dataene for bare et par tilstander, så det ikke er 50 separate tidsserielinjer. Jeg valgte Louisiana for å se økningen i saker der - Louisiana guvernøren sa staten har blant verdens raskeste vekst i saker. (Det spekuleres i at Mardi Gras i februar kan ha forårsaket en klynge i New Orleans.) Jeg vil også legge til Massachusetts, en stat med omtrent 50 prosent flere mennesker enn Louisiana, siden jeg er basert der.
Etter å ha filtrert dataene, lager jeg et grunnleggende linjediagram over dataene:
states2 <- filter (data, state% in% c ("LA", "MA"))Sharon Machlis,ggplot (stater2, aes (x = dato, y = positiv, farge = tilstand)) +
geom_line () +
geom_point () +
tema_minimal () +
ggtitle ("Lousiana & Massachusetts Daily Covid-19 Cases")
Det er en ganske bratt økning. Noe av det kan skyldes en økning i testing - kanskje vi bare vet om flere tilfeller fordi testing økte. Jeg ser på det om et øyeblikk.
Først, hva med noen få justeringer til denne grafen?
La oss starte med å gjøre graftittelen større. For å bruke ggeasy, begynner jeg å skrive lett_
i RStudio øverste venstre kildepanel og bla til jeg finner det jeg vil ha.
easy_plot_title_size ()
ser ut som funksjonen jeg trenger. Jeg kan endre grafittittelen til 16-punkts type med denne koden:
ggplot (stater2, aes (x = dato, y = positiv, farge = tilstand)) +geom_line () +
geom_point () +
tema_minimal () +
ggtitle ("Lousiana & Massachusetts Daily Covid-19 Cases") +
easy_plot_title_size (16)
Jeg kan rotere x-aksetekst med easy_rotate_x_labels (90)
for en 90-graders rotasjon, og fjern legendatittelen (det er ganske åpenbart at dette er stater) med easy_remove_legend_title ()
. Hele grafkoden er nedenfor, inkludert lagring av grafen i en variabel som heter positive
.
positive <- ggplot (stater2, aes (x = dato, y = positiv, farge = tilstand)) +Sharon Machlis,geom_line () +
geom_point () +
tema_minimal () +
ggtitle ("Lousiana & Massachusetts Daily Covid-19 Cases") +
easy_plot_title_size (16) +
easy_rotate_x_labels (90) +
easy_remove_legend_title ()
Deretter vil jeg se på negativ Coronavirus-testresultater, for å se om de stiger med samme hastigheter som positive. Jeg bruker samme kode, men bare bytter y-kolonnen til negativ.
negativer <- ggplot (stater2, aes (x = dato, y = negativ, farge = tilstand)) +Sharon Machlis,geom_line () +
geom_point () +
tema_minimal () +
ggtitle ("Lousiana & Massachusetts Negatives") +
easy_plot_title_size (16) +
easy_rotate_x_labels (90) +
easy_remove_x_axis ("title") +
easy_remove_y_axis ("title") +
easy_remove_legend_title ()
Det ser ut til å være en større økning i positive enn negativer i Louisiana. Selv om vi ikke vet om det er fordi testkriteriene er endret eller noe annet.
Det vil være nyttig å se disse to grafene side om side. Det er der lappepakken kommer inn.
Med bare disse to kodelinjene laster den første lappetepppakken:
bibliotek ("lappeteppe")positive + negative
Jeg får dette:
Sharon Machlis,Det er utrolig enkelt å plassere flere grafer med lappeteppe. For mer informasjon om hvordan du tilpasser layouter, gå til patchwork-nettstedet.
Jeg kan nå gå tilbake og bruke ggeasy for å fjerne en av legendene, så det ikke er to, og kjør deretter lappetepper på nytt:
negativer <- negativer +easy_remove_legend ()
positive + negative
Det er klart at ggeasy er ganske nyttig for rask og enkel datautforskning!
For flere R-tips, gå til "Gjør mer med R" -siden på eller sjekk ut "Gjør mer med R"-YouTube-spillelisten.