Coraz większą popularnością cieszą się animowane wykresy słupkowe, które można osadzić bezpośrednio w poście na dowolnej stronie internetowej. Pokazują dynamikę zmian dowolnej cechy w określonym czasie i robią to wyraźnie. Zobaczmy, jak je utworzyć za pomocą języka R i pakietów ogólnych.
Przypomnienie:dla wszystkich czytelników „Habr” - rabat w wysokości 10 000 rubli przy zapisywaniu się na dowolny kurs Skillbox przy użyciu kodu promocyjnego „Habr”.
Te dwie rzeczy są niezwykle potrzebne. Ponadto do zarządzania danymi, czyszczenia tablicy i odpowiedniego formatowania potrzebne będą narzędzia tidyverse, woźny i waga.
Te
Oryginalny zbiór danych, którego będziemy używać w tym projekcie, zostanie pobrany ze strony internetowej Banku Światowego. Tutaj są - Dane Banku Światowego. Te same dane, jeśli potrzebujesz gotowych, można pobrać z foldery projektu.
Jakiego rodzaju są to informacje? Próba zawiera wartość PKB większości krajów za kilka lat (od 2000 r. do 2017 r.).
Przetwarzanie danych
Poniższy kod wykorzystamy do przygotowania wymaganego formatu danych. Usuwamy nazwy kolumn, zamieniamy liczby na format liczbowy i konwertujemy dane za pomocą funkcji zbierania(). Zapisujemy wszystko, co otrzymamy w gdp_tidy.csv do dalszego wykorzystania.
Wykreślanie pełnego zestawu rzeczywistych histogramów za pomocą ggplot2.
Animuj statyczne histogramy z pożądanymi parametrami za pomocą gganimate.
Ostatnim krokiem jest wyrenderowanie animacji w żądanym formacie, w tym GIF lub MP4.
Ładowanie bibliotek
biblioteka (porządek)
biblioteka (gganimate)
Zarządzanie danymi
Na tym etapie musisz przefiltrować dane, aby uzyskać 10 najlepszych krajów w każdym roku. Dodajmy kilka kolumn, które pozwolą nam wyświetlić legendę histogramu.
gdp_tidy <- read_csv("./data/gdp_tidy.csv")
gdp_formatted <- gdp_tidy %>%
group_by(year) %>%
# The * 1 makes it possible to have non-integer ranks while sliding
mutate(rank = rank(-value),
Value_rel = value/value[rank==1],
Value_lbl = paste0(" ",round(value/1e9))) %>%
group_by(country_name) %>%
filter(rank <=10) %>%
ungroup()
Budowanie statycznych histogramów
Teraz, gdy mamy pakiet danych w wymaganym formacie, zaczynamy rysować histogramy statyczne. Podstawowe informacje - 10 krajów z maksymalnym PKB w wybranym przedziale czasowym. Tworzymy wykresy na każdy rok.
Tworzenie wykresów za pomocą ggplot2 jest bardzo proste. Jak widać w powyższej sekcji kodu, funkcja motywu() ma kilka kluczowych punktów. Są one niezbędne, aby wszystkie elementy animowały się bez problemów. W razie potrzeby niektóre z nich mogą nie być wyświetlane. Przykład: Rysowane są tylko pionowe linie siatki i legendy, ale tytuły osi i kilka innych komponentów są usuwane z obszaru.
ożywienie
Kluczową funkcją jest tutaj transit_states(), która łączy ze sobą oddzielne statyczne wykresy. view_follow() służy do rysowania linii siatki.
anim = staticplot + transition_states(year, transition_length = 4, state_length = 1) +
view_follow(fixed_x = TRUE) +
labs(title = 'GDP per Year : {closest_state}',
subtitle = "Top 10 Countries",
caption = "GDP in Billions USD | Data Source: World Bank Data")
Wykonanie
Gdy animacja zostanie utworzona i zapisana w obiekcie anim, czas ją wyrenderować za pomocą funkcji animate(). Mechanizm renderujący używany w animate() może się różnić w zależności od typu wymaganego pliku wyjściowego.