По-лесен ggplot с пакета ggeasy R

Пакетът за визуализация на данни ggplot2 R е изключително мощен и гъвкав. Не винаги обаче е лесно да запомните как да изпълнявате всяка задача - особено ако не сте чест потребител. Как променяте размера на заглавието на графиката? Как премахвате заглавията на легендите? Моето обичайно решение е да запазвам кодови фрагменти на RStudio за неща, които имам проблеми със запомнянето. Но има и пакет, който може да помогне: ggeasy.

Както казва името, целта на ggeasy е да, добре, направи ggplot2 лесно - или поне EASI НЛП . Има някои, които някои хора могат да намерят за по-интуитивни функции за типични задачи, най-вече около форматирането на текст и ос. (Този пакет не засяга начина , по който линиите, точките и лентите изглеждат и се държат). Всички ggeasy функции започват с, easy_така че, да, лесно е да ги намерите с помощта на RStudio autocomplete. Можете да видите как работи това във видеото по-горе.

Ако искате да следвате моя пример по-долу, ggeasy е на CRAN, така че можете да го инсталирате с install.packages("ggeasy"). Също така ще използвам пакетите ggplot2 (естествено), dplyr, rio и lubridate. По-късно ще добавя пачуърк пакета за супер просто поставяне на множество графики; това също е на CRAN.

За този пример ще използвам данни за това, което днес е в съзнанието на повечето хора: коронавирус. Можете да изтеглите CSV файл с данни от щат на САЩ от Проект за проследяване на коронавирус с

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

destfile = "covid19.csv")

(Можете да дадете име на destfile дестинация файл всичко, което искате.) Използвах rio::import()да импортирате данните, но можете да използвате и readr::read_csv(), read.csv(), data.table::fread(), или всяка друга функция, за да импортирате CSV.

С rio датите влизат като цели числа, така че ще използвам функцията lubridate, за ymd()да превърна тази колона в обекти Date:

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

За да създам графика, която не е твърде трудна за разбиране, ще филтрирам тези данни само за няколко състояния, така че няма 50 отделни реда от времеви редове. Избрах Луизиана, за да видя нарастването на случаите там - губернаторът на Луизиана каза, че щатът е сред най-бързо нарастващите случаи в света. (Има предположения, че Марди Гра през февруари може да е причинил клъстер в Ню Орлиънс.) Ще добавя и Масачузетс, щат с около 50 процента повече хора от Луизиана, тъй като съм базиран там.

След филтриране на данните ще създам основна графика на данните:

state2 <- филтър (данни, състояние% в% c ("LA", "MA"))

ggplot (състояния2, aes (x = дата, y = положително, цвят = състояние)) +

geom_line () +

geom_point () +

тема_минимална () +

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

Шарън Маклис,

Това е доста стръмно увеличение. Част от това може да се дължи на увеличаване на тестването - може би просто знаем за повече случаи, защото тестването се увеличи. Ще го разгледам след минута.

Първо, какво ще кажете за няколко ощипвания на тази графика?

Нека започнем с увеличаване на заглавието на графиката. За да използвам ggeasy, щях да започна да пиша easy_ в горния ляв изходен прозорец на RStudio и да превъртя, докато намеря това, което искам. 

Шарън Маклис,

easy_plot_title_size()изглежда като функцията, от която се нуждая. Мога да променя заглавието на графиката на 16-точков тип с този код:

ggplot (състояния2, aes (x = дата, y = положително, цвят = състояние)) +

geom_line () +

geom_point () +

тема_минимална () +

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

easy_plot_title_size (16)

Мога да завъртя x-осния текст с easy_rotate_x_labels(90)90-градусова ротация и да премахна заглавието на легендата (доста очевидно е, че това са състояния) с easy_remove_legend_title(). Пълният код на графиката е по-долу, включително съхраняване на графиката в променлива, наречена positives.

положителни <- ggplot (state2, aes (x = дата, y = положителен, цвят = състояние)) +

geom_line () +

geom_point () +

тема_минимална () +

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

easy_plot_title_size (16) +

easy_rotate_x_labels (90) +

easy_remove_legend_title ()

Шарън Маклис,

След това бих искал да разгледам отрицателните резултати от теста за коронавирус, за да видя дали те нарастват със сходни темпове с положителните. Ще използвам същия код, но просто превключвам колоната y на отрицателни.

отрицателни <- ggplot (състояния2, aes (x = дата, y = отрицателни , цвят = състояние)) +

geom_line () +

geom_point () +

тема_минимална () +

ggtitle ("Отрицателни точки на Lousiana & Massachusetts") +

easy_plot_title_size (16) +

easy_rotate_x_labels (90) +

easy_remove_x_axis ("заглавие") +

easy_remove_y_axis ("заглавие") +

easy_remove_legend_title ()

Шарън Маклис,

Изглежда в Луизиана има по-голям ръст на позитивите, отколкото на негативите. Въпреки че не знаем дали това се дължи на промяна на критериите за тестване или нещо друго.

Би било полезно да видите тези две графики една до друга. Това е мястото, където се предлага пачуърк пакетът. 

Само с тези два реда код, първото зареждане на пачуърк пакета: 

библиотека ("пачуърк")

положителни + отрицателни

Получавам това:

Шарън Маклис,

Невероятно лесно е да поставите множество графики с пачуърк. За повече информация как да персонализирате оформления, отидете на уеб сайта на пачуърк.

Вече мога да се върна и да използвам ggeasy, за да премахна една от легендите, така че да няма две, и след това да пусна отново пачуърк:

негативи <- негативи +

easy_remove_legend ()

положителни + отрицателни

Ясно е, че ggeasy е доста полезен за бързо и лесно проучване на данни!

За повече съвети за R отидете на страницата „Направете повече с R“ на или разгледайте плейлиста „Направете повече с R“ в YouTube.