Łatwiejszy ggplot dzięki pakietowi ggeasy R.

Pakiet R do wizualizacji danych ggplot2 jest niezwykle wydajny i elastyczny. Jednak nie zawsze łatwo jest zapamiętać, jak wykonać każde zadanie - zwłaszcza jeśli nie jesteś częstym użytkownikiem. Jak zmienić rozmiar tytułu wykresu? Jak usunąć tytuły legend? Moim typowym rozwiązaniem jest zapisywanie fragmentów kodu RStudio dla rzeczy, których nie pamiętam. Ale jest też pakiet, który może pomóc: ggeasy.

Jak sama nazwa mówi, celem ggeasy jest dobrze, zrobić ggplot2 proste - albo przynajmniej easi er . Ma to, co niektórzy ludzie mogą uznać za bardziej intuicyjne funkcje do typowych zadań, głównie związanych z formatowaniem tekstu i osi. (Ten pakiet nie wpływa na wygląd i zachowanie linii, punktów i pasków ). Wszystkie funkcje ggeasy zaczynają się od, easy_więc tak, łatwo je znaleźć za pomocą autouzupełniania RStudio. Możesz zobaczyć, jak to działa na powyższym filmie.

Jeśli chcesz podążać za moim przykładem poniżej, ggeasy jest na CRAN, więc możesz go zainstalować z install.packages("ggeasy"). Będę również używał pakietów ggplot2 (naturalnie), dplyr, rio i lubridate. Później dodam pakiet patchworkowy do super prostego umieszczania wielu wykresów; to również w CRAN.

W tym przykładzie wykorzystam dane o tym, co w dzisiejszych czasach myśli większość ludzi: koronawirus. Możesz pobrać plik CSV z danymi według stanu USA z projektu Coronavirus Tracking Project za pomocą

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

destfile = „covid19.csv”)

(Można nazwać DestFile pliku docelowego cokolwiek zechcesz.) Użyłem rio::import()do importowania danych, ale można również użyć readr::read_csv(), read.csv(), data.table::fread()lub jakąkolwiek inną funkcję importu CSV.

W rio daty są liczbami całkowitymi, więc użyję ymd()funkcji lubridate, aby przekształcić tę kolumnę w obiekty Date:

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

Aby stworzyć wykres, który nie jest zbyt trudny do zrozumienia, przefiltruję te dane tylko dla kilku stanów, aby nie było 50 oddzielnych linii czasowych. Wybrałem Luizjanę, aby zobaczyć tam wzrost liczby spraw - powiedział gubernator Luizjany, że stan ten ma jeden z najszybszych na świecie wzrostów spraw. (Istnieją spekulacje, że Mardi Gras w lutym mogło spowodować skupisko w Nowym Orleanie.) Dodam również Massachusetts, stan, w którym mieszka około 50 procent więcej ludzi niż Luizjana, ponieważ tam mieszkam.

Po przefiltrowaniu danych utworzę podstawowy wykres liniowy danych:

States2 <- filtr (dane, stan% w% c ("LA", "MA"))

ggplot (states2, aes (x = data, y = dodatnia, kolor = stan)) +

geom_line () +

geom_point () +

motyw_minimal () +

ggtitle („Przypadki Lousiana i Massachusetts Daily Covid-19”)

Sharon Machlis,

To dość gwałtowny wzrost. Po części może to być spowodowane wzrostem liczby testów - może po prostu wiemy o większej liczbie przypadków, ponieważ testy nabrały tempa. Przyjrzę się temu za minutę.

Najpierw jednak, co powiesz na kilka poprawek do tego wykresu?

Zacznijmy od powiększenia tytułu wykresu. Aby użyć ggeasy, zacząłem pisać easy_ w lewym górnym okienku źródłowym RStudio i przewijałem, aż znajdę to, czego szukam. 

Sharon Machlis,

easy_plot_title_size()wygląda na funkcję, której potrzebuję. Mogę zmienić tytuł wykresu na typ 16-punktowy za pomocą tego kodu:

ggplot (states2, aes (x = data, y = dodatnia, kolor = stan)) +

geom_line () +

geom_point () +

motyw_minimal () +

ggtitle ("Przypadki Lousiana i Massachusetts Daily Covid-19") +

easy_plot_title_size (16)

Mogę obracać tekst na osi X easy_rotate_x_labels(90)za pomocą, aby obrócić o 90 stopni, i usunąć tytuł legendy (jest całkiem oczywiste, że są to stany) za pomocą easy_remove_legend_title(). Pełny kod wykresu znajduje się poniżej, w tym przechowywanie wykresu w zmiennej o nazwie positives.

pozytywy <- ggplot (states2, aes (x = data, y = dodatnie, kolor = stan)) +

geom_line () +

geom_point () +

motyw_minimal () +

ggtitle ("Przypadki Lousiana i Massachusetts Daily Covid-19") +

easy_plot_title_size (16) +

easy_rotate_x_labels (90) +

easy_remove_legend_title ()

Sharon Machlis,

Następnie chciałbym przyjrzeć się negatywnym wynikom testu na koronawirusa, aby sprawdzić, czy rosną w podobnym tempie jak dodatnie. Użyję tego samego kodu, ale po prostu przełączę kolumnę y na negatywy.

negatywy <- ggplot (states2, aes (x = data, y = wartość ujemna , kolor = stan)) +

geom_line () +

geom_point () +

motyw_minimal () +

ggtitle („Lousiana & Massachusetts Negatives”) +

easy_plot_title_size (16) +

easy_rotate_x_labels (90) +

easy_remove_x_axis ("tytuł") +

easy_remove_y_axis ("tytuł") +

easy_remove_legend_title ()

Sharon Machlis,

Wydaje się, że w Luizjanie odnotowano większy wzrost pozytywów niż negatywów. Chociaż nie wiemy, czy to dlatego, że zmieniły się kryteria testowania, czy coś innego.

Dobrze byłoby zobaczyć te dwa wykresy obok siebie. W tym miejscu pojawia się pakiet patchwork. 

Mając tylko te dwie linie kodu, pierwsze ładowanie pakietu patchwork: 

biblioteka („patchwork”)

pozytywy + negatywy

Rozumiem:

Sharon Machlis,

Umieszczenie wielu wykresów z patchworkiem jest niezwykle łatwe. Aby uzyskać więcej informacji na temat dostosowywania układów, odwiedź witrynę patchwork.

Mogę teraz wrócić i użyć ggeasy, aby usunąć jedną z legend, aby nie było dwóch, a następnie ponownie uruchomić patchwork:

negatywy <- negatywy +

easy_remove_legend ()

pozytywy + negatywy

Oczywiście ggeasy jest bardzo przydatne do szybkiej - i łatwej - eksploracji danych!

Aby uzyskać więcej wskazówek dotyczących języka R, przejdź na stronę „Zrób więcej z R” lub sprawdź listę odtwarzania YouTube „Zrób więcej z R”.