Programavimas

Lengviau „ggplot“ su „ggeasy R“ paketu

„Ggplot2“ duomenų vizualizavimo R paketas yra ypač galingas ir lankstus. Tačiau ne visada lengva prisiminti, kaip atlikti kiekvieną užduotį - ypač jei nesate dažnas vartotojas. Kaip pakeisti grafiko pavadinimo dydį? Kaip pašalinti legendų pavadinimus? Mano įprastas sprendimas yra išsaugoti „RStudio“ kodo fragmentus tiems dalykams, kuriuos man sunku prisiminti. Tačiau yra ir paketas, kuris gali padėti: ggeasy.

Kaip sako pavadinimas, „ggeasy“ tikslas yra padaryti „ggplot2“ lengvą arba bent jau lengvąer. Kai kuriems žmonėms tai gali būti intuityvesnės funkcijos atliekant tipines užduotis, dažniausiai aplink teksto ir ašies formatavimą. (Šis paketas neturi įtakos būdui linijos, taškai ir juostos žiūrėk ir elkis). Pradedamos visos „ggeasy“ funkcijos lengva_ taigi, taip, juos lengva rasti naudojant „RStudio“ automatinį užbaigimą. Kaip tai veikia, galite pamatyti aukščiau pateiktame vaizdo įraše.

Jei norite sekti mano žemiau pateiktą pavyzdį, „ggeasy“ yra „CRAN“, todėl galite jį įdiegti naudodami install.packages („ggeasy“). Taip pat naudosiu „ggplot2“ (natūraliai), „dplyr“, „rio“ ir „lubricate“ paketus. Vėliau pridėsiu „patchwork“ paketą, skirtą labai paprastam kelių grafikų išdėstymui; tai taip pat yra CRAN.

Šiame pavyzdyje naudosiu duomenis apie tai, kas šiais laikais galvoja apie daugumą žmonių: koronavirusą. Galite atsisiųsti CSV failą su JAV valstijos duomenimis iš koronavirusų stebėjimo projekto naudodami

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

destfile = "covid19.csv")

(Galite įvardyti destfile paskirties failą, ko tik norite.) Aš naudojau rio :: importas () duomenims importuoti, bet taip pat galite naudoti readr :: read_csv (), skaityti.csv (), data.table :: fread (), ar bet kurią kitą funkciją importuoti CSV.

Su „rio“ datos buvo pateiktos kaip sveiki skaičiai, todėl naudosiu tepalus ymd () funkcija paversti tą stulpelį objektu „Data“:

duomenys $ data <- sutepti :: ymd (duomenys $ data)

Norėdami sukurti diagramą, kurią suprasti nėra per sunku, filtruosiu šiuos duomenis tik kelioms būsenoms, kad nebūtų 50 atskirų laiko eilučių eilučių. Pasirinkau Luizianą, kad pamatyčiau bylų augimą - Luizianos gubernatorius teigė, kad valstybė yra viena iš sparčiausiai pasaulyje augančių bylų. (Spėjama, kad Užgavėnės vasarį galėjo sukelti klasterį Naujajame Orleane.) Taip pat pridėsiu Masačusetso valstiją, kurioje gyvena apie 50 procentų daugiau žmonių nei Luizianoje, nes aš ten gyvenu.

Filtravusi duomenis, sukursiu pagrindinę duomenų diagramą:

būsenos2 <- filtras (duomenys, būsenos%% c ("LA", "MA"))

ggplot (būsenos2, aes (x = data, y = teigiama, spalva = būsena)) +

geom_line () +

geom_point () +

tema_minimali () +

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

Sharon Machlis,

Tai gana staigus padidėjimas. Dalis to gali būti dėl padidėjusio bandymų skaičiaus - galbūt mes tiesiog žinoti apie daugiau atvejų, nes bandymai paspartėjo. Aš pažvelgsiu į tai per minutę.

Visų pirma, kaip būtų su keliais šio grafiko patobulinimais?

Pradėkime nuo to, kad padidintume diagramos pavadinimą. Norėdamas naudoti „ggeasy“, pradėčiau rašyti lengva_ „RStudio“ viršutiniame kairiajame šaltinio srityje ir slinkite tol, kol rasiu tai, ko noriu.

Sharon Machlis,

easy_plot_title_size () atrodo kaip man reikalinga funkcija. Šiuo kodu galiu pakeisti diagramos pavadinimą į 16 taškų tipą:

ggplot (būsenos2, aes (x = data, y = teigiama, spalva = būsena)) +

geom_line () +

geom_point () +

tema_minimali () +

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

lengva_ploto_pavadinimo_dydis (16)

Aš galiu pasukti x ašies tekstą lengva_kreipti_x_labels (90) 90 laipsnių pasukimui ir pašalinkite legendos pavadinimą (tai visiškai akivaizdu, kad tai valstybės) easy_remove_legend_title (). Visas grafiko kodas yra žemiau, įskaitant grafiko saugojimą kintamajame, vadinamame teigiamų.

teigiami <- ggplot (būsenos2, aes (x = data, y = teigiama, spalva = būsena)) +

geom_line () +

geom_point () +

tema_minimali () +

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

easy_plot_title_size (16) +

easy_rotate_x_labels (90) +

easy_remove_legend_title ()

Sharon Machlis,

Toliau norėčiau pažvelgti į neigiamas koronaviruso tyrimo rezultatus, norėdami sužinoti, ar jie auga panašiai kaip teigiami. Aš naudosiu tą patį kodą, bet tiesiog pakeisiu y stulpelį į neigiamą.

neiginiai <- ggplot (būsenos2, aes (x = data, y = neigiamas, spalva = būsena)) +

geom_line () +

geom_point () +

tema_minimali () +

„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 ()

Sharon Machlis,

Panašu, kad Luizianoje teigiamų dalykų yra daugiau nei neigiamų. Nors nežinome, ar taip yra dėl to, kad pasikeitė testavimo kriterijai, ar dar kažkas.

Būtų naudinga pamatyti šiuos du grafikus greta. Čia atsiranda lopinėlių paketas.

Turint tik šias dvi kodo eilutes, pirmasis įkelia paketų paketą:

biblioteka („kratinys“)

teigiami + neigiami

Aš tai suprantu:

Sharon Machlis,

Nepaprastai lengva įdėti kelis grafikus su kratiniu. Norėdami sužinoti daugiau apie tai, kaip pritaikyti maketus, eikite į lopinėlių svetainę.

Dabar galiu grįžti ir naudoti „ggeasy“, kad pašalinčiau vieną iš legendų, kad jų nebūtų dviejų, ir tada paleiskite iš naujo:

neiginiai <- negatyvai +

easy_remove_legend ()

teigiami + neigiami

Aišku, „ggeasy“ yra gana naudinga greitai ir lengvai tyrinėjant duomenis!

Norėdami gauti daugiau R patarimų, eikite į „Do More With R“ puslapį arba peržiūrėkite „YouTube“ grojaraštį „Do More With R“.