Kilka dni temu karierę na stronach poświęconych wizualizacji danych robił filmik obrazujący zmiany temperatury na przestrzeni lat. Na stronie Dane i Analizy obiecałem, że opiszę jak można coś takiego zrobić.
Wspomniany filmik to
Jakiś czas zastanawiałem się jakie dane pokazać i zdecydowałem, że będzie to liczba odsłon najpopularniejszych tekstów z bloga który czytasz. Przy okazji dowiemy się jak za pomocą R dostać się do statystyk zebranych w Google Analitycs.
Oczywiście jest do tego stosowny pakiet, ale wcześniej potrzebna jest pewna konfiguracja konta googlowego. Jak zwykle w przypadku API potrzebny jest klucz – w tym przypadku jest to para Client ID i Secret ID. Aby je uzyskać wystarczy wykonać kroki opisane chociażby tutaj.
Dodatkowo instalujemy pakiet RGoogleAnalytics:
Uzbrojeni w narzędzia zaczynamy od wczytania potrzebnych bibliotek:
Następny krok to autoryzacja w Google API:
Zostaniemy poproszeni o autoryzację w Google (w przeglądarce). Dobrze też zezwolić na zapisanie danych w pliku .httr-oauth, wówczas kolejnym razem autoryzacja przez przeglądarkę nie będzie potrzebna.
Aby pobrać dane musimy określić czego chcemy:

Python na maturze. Rozwiązania i analiza wybranych zadań programistycznych
34.90 zł17.45 zł-50%
Matura z Pythonem to nic trudnego!
Ucz się!
Analizuj!
Programuj!
Nauka programowania na dobre zadomowiła się w szkołach, a umiejętności informatyczne są od lat sprawdzane na egzaminach maturalnych. Jej adepci zapewne zdają sobie sprawę, jakim wzięciem na rynku cieszą się osoby, które mogą się pochwalić znajomością Pythona. To język, który dzięki swoim możliwościom i wszechstronności znajduje zastosowanie w najróżniejszych dziedzinach nauki, przemysłu i biznesu.
Książka Python na maturze. Rozwiązania i analiza wybranych zadań programistycznych pozwoli Ci zapoznać się z prawdziwymi zadaniami maturalnymi z kilku ostatnich lat. Będziesz mógł je przeanalizować, a także opracować prawidłowe rozwiązania w języku Python. W efekcie nie tylko zdobędziesz i utrwalisz umiejętności programistyczne, lecz również - co nie mniej ważne - rozwiniesz zdolności w zakresie analizy problemów i wyboru właściwych rozwiązań.
Treść zadań maturalnych
Analiza problemów
Praktyczne rozwiązania
Uzasadnienie wybranych technik
Typowe pułapki w zadaniach
Składnia i instrukcje Pythona
Zastosowanie języka w praktyce
Naucz się Pythona i zdaj maturę jak prymus!
Wymiarów (Dimensions) może być do 7 jednocześnie, metryk – do 10. Wszystkie znaleźć można na stronie googlowej dla developerów
Uwaga – potrzebne jest ID strony w ramach Google Analitycs (wyżej określone jako ID_STRONY). Numerek ten znaleźć można w ustawieniach stron w ramach GA – jest w kolumnie “Views” przy wybieraniu strony albo po literce p w URLu jaki widać w ramach przechodzenia przez kolejne strony GA.
W tabeli ga.data mamy interesujące nas dane. Poeksperymentujcie z wartościami dla metric i dimensions. Na tym kończymy zabawę z Google Analitycs, gdyż cel mamy inny.
Jeden z moich postów trafił w kwietniu na tak zwany wykop-efekt: dużą ilość odwiedzin pochodzących z serwisu Wykop.pl. To mocno zaburzy efekt, tak więc w danych pozbywamy się tego – odsiewam informacje o ruchu na tym konkretnym poście pochodzące z Wykopu.
Tak przygotowane dane możemy już rysować. Idea jest prosta: dla każdej kolejnej jednostki czasu rysujemy wykres, a następnie te wykresy łączymy w animację.
Wcześniej jednak (w przypadku tych akurat danych) potrzebujemy znać liczbę wszystkich kategorii (w tym przypadku stron) dla których mamy dane. Potrzebne jest to, aby pozycje na wykresie dla danej kategorii były zawsze w tym samym miejscu, nawet jeśli nie posiadają danych (w naszym przypadku w na przykład kwietniu danych nie posiadają posty publikowane w czerwcu).
Jeśli dla każdej kategorii w każdej jednostce czasu mamy wartości to ten zabieg jest zbędny. Na przykład jeśli są to dane o liczbie urodzin w poszczególnych krajach w kolejnych latach (początkowo chciałem właśnie to pokazać dla polskich województw, ale w GUSie dane są dla kilkudziesięciu lat – animacja byłaby 1-2 sekundowa), albo właśnie o temperaturze – tak jak na filmie, na którym się wzorujemy (w tym przypadku są to odchyłki od średniej, a nie sama temperatura).
Teraz już wystarczy przejść dzień po dniu, godzina po godzinie dane i zapisać stosowne wykresy na dysku:
I to wszystko. Teraz wystarczy złączyć poszczególne klatki animacji (opisałem to w poście o tym jak jeżdżą warszawskie tramwaje). Wynik możecie podziwiać poniżej:
Wiele się tutaj nie dzieje, ale to już charakter danych. Dla ciekawskich – napopularniejsze posty zaprezentowane wyżej to:
- niebieskie: Praca redakcji informacyjnych na Facebooku
- czerwone: Ceny mieszkań na wynajęcia
- fioletowe: Sejm RP VIII kadencji
- zielone to strona główna
Cała wizualizacja polega na wygięciu w koło zwykłego wykresu słupkowego, co w pakiecie ggplot2 zapewnia coord_polar(). Atrakcyjność animacji to dobranie odpowiednich kolorów i przede wszystkim ciekawych danych.
Pingback: Facebook w R | Łukasz Prokulski