Kategorie
Statystyki Zrób to sam

Najpopularniejsze artykuły z roku 2020 na fajnym wykresie i jak go zrobić

W jednym z poprzednich tekstów pokazałem, że arkusz kalkulacyjny pozwala przygotować całkiem złożone obliczenia i wizualizacje. Niestety, szybko zderzamy się z głównym problemem arkuszy – dane są tam ściśle powiązane z operacjami przetwarzania a niewielkie zmiany w pośrednim kroku obliczeń mogą pociągać konieczność przeorganizowanie całego arkusza.

Jeśli makra i skomplikowane formuły masz w małym palcu, może czas na kolejny krok? W tym tekście poznasz środowisko RStudio Cloud i zobaczysz, w jaki sposób dane tabelaryczne można obrabiać w języku skryptowym. Nie będzie to tutorial prowadzący małymi kroczkami, skaczemy w głąb języka R, kolekcji pakietów tidyverse oraz biblioteki ggplot. Wykresy przygotujemy przy użyciu gramatyki opisującej mapowania zmiennych, charakterystykę układu współrzędnych oraz definicje kształtów i kolorów.

Naszym celem będzie przygotowanie następującego obrazka. Zawiera on sześć najlepiej klikających się artykułów z minionego roku umieszczonych na wspólnej osi czasu. Z małych wykresów można odczytać, kiedy artykuł został opublikowany i jak wygląda dynamika zmian czytelnictwa.

(kliknij aby powiększyć)

Dane źródłowe

Dane do umieszczenia na wykresie będą pochodziły z serwisu Google Analytics. W dzisiejszych czasach, gdy przeglądarki domyślnie blokują funkcje śledzenia i „obce” ciasteczka, prezentuje on statystyki niedoszacowane dwu- a nawet i pięciokrotnie, ale to na razie musi nam wystarczyć.

Otwieramy serwis Analytics, przechodzimy do ekranu Zachowanie → Zawartość witryny → Wszystkie strony, przestawiamy zakres dat na cały rok 2020, Wymiar podstawowy na „Tytuł strony” a Wymiar dodatkowy na „Datę”. Panel wygląda tak:

Na dole strony widzimy, że roczne statystyki to ponad 11 tysięcy wierszy opisujących oglądalność „strono-dni”, jednak na raz możemy zobaczyć co najwyżej 5000 pozycji.

Nie ma prostego ani szybkiego sposobu na wyciągnięcie kompletu danych, więc trzeba przestawić kontrolkę na wyświetlanie 5000 wierszy i trzykrotnie użyć funkcji Eksportuj → CSV w nagłówku strony, osobno dla każdego przedziału danych. Otrzymamy trzy pliki tekstowe, które trzeba troszkę podrzeźbić ręcznie.

Do operacji na plikach tekstowych polecam edytor Notepad++. Bierzemy pierwszy plik i usuwamy z niego sześć linii nagłówka:

Potem kasujemy kilkaset linii z końca pliku, odcinając wszystko co nie zawiera statystyk oglądalności:

Podobne operacje należy przeprowadzić na drugim i trzecim pliku, tym razem usuwając także wiersz nagłówka (siódmy). Na koniec zawartość drugiego i trzeciego pliku wklejamy na koniec pierwszego pliku, aby mieć komplet danych w jednym zbiorze CSV.

TUTAJ znajdziesz plik tekstowy data.csv z pełnymi statystykami bloga z 2020 roku. Będziemy używać go w dalszej części tekstu.

RStudio Cloud

Załóż darmowe konto w serwisie RStudio Cloud, utwórz workspace o dowolnej nazwie, następnie w prawej-dolnej zakładce Files użyj funkcji Upload, by wysłać pobrany przed chwilą plik data.csv. Kliknij go, RStudio powinno wyglądać jakoś tak:

Teraz wybierz opcję File → New file → R Script aby utworzyć nowy plik skryptowy. Wszystkie teksty w czarnych ramkach poniżej będą stanowić kolejne fragmenty naszego skryptu obrabiającego dane. Nie musisz rozumieć składni poleceń, język R jest dość… charakterystyczny.

Skrypt uruchomisz poleceniem „Run” w pasku narzędzi okienka pliku. Jeśli podświetlisz fragment pliku, uruchomisz tylko zaznaczony kod, w przeciwnym razie wykonany zostanie cały plik.

Zaczynajmy od deklaracji użycia potrzebnych bibliotek, przy pierwszym użyciu zobaczysz w RStudio żółty pasek proponujący ich instalację. Zajmie to minutę lub dwie.

Plain Text

Przestawiamy formatowanie dat na język polski.

Plain Text

Wczytujemy dane z pliku do zmiennej articles. Zmienną tę zobaczymy w prawym górnym panelu, możesz kliknąć niebieskie kółko obok nazwy aby zobaczyć nazwy wczytanych kolumn.

Plain Text

Wyrzucamy niepotrzebne kolumny, poprawiamy typy drugiej i trzeciej kolumny.

Plain Text

Gdy klikniemy nazwę zmiennej articles, otworzy się okienko z podglądem jej zawartości. Widzimy, że zmienna ta przechowuje tzw. ramkę danych czyli dane tabelaryczne, zorganizowane w wiersze i kolumny.

Czyścimy dane – nie chcemy patrzeć na odsłony strony głównej, ponadto w ciągu roku zmienił się sposób prezentacji tytułu strony.

Plain Text

Po czyszczeniu mogło się zdarzyć, że ten sam artykuł w tym samym dniu będzie opisany dwoma wierszami – sumujemy je a przy okazji dodajemy kolumnę sumviews zawierającą łączną liczbę obejrzeń danego artykułu.

Plain Text

Tworzymy pierwsze wykresy

Do zobrazowania danych użyjemy wspomnianego już pakietu ggplot, który potrafi czerpać dane bezpośrednio z data frame (danych tabelarycznych). To podejście jest zupełnie inne, niż przypadku narzędzi graficznych – przekształcamy dane na obraz poprzez opisanie pożądanych cech wizualizacji. Znakomity esej napisał o tym Przemysław Biecek, zachęcam do lektury.

W sieci znajdziemy wiele materiałów pomocniczych, np. taką ściągawkę jak na obrazku

Pierwszy przykład będzie bardzo prosty – weźmiemy jeden artykuł (filtrowanie w wierszu 2), przypiszemy datę i oglądalność do osi X i Y (wiersz 3), na końcu użyjemy formy wykresu liniowego (wiersz 4).

Plain Text

Wynikowy obraz wygląda następująco

Widzimy, że pik oglądalności z końcówki października (tekst wtedy trafił na pierwszą stronę Wykopu) utrudnia odczytanie pozostałych wartości, możemy więc jedną komendą zmienić skalę Y na logarytmiczną, dodamy do niej samodzielnie określoną siatkę (wiersz 5) a na wykres nałożymy odmienny szablon wizualny (wiersz 6).

Plain Text

Docelowy obrazek

Na obrazku chcemy umieścić kilka osobnych wykresów kolorowanych według skali logarytmicznej, potrzebujemy więc kilka dodatkowych kolumn i zmiennych

Plain Text

Teraz możemy już sporządzić finalny wykres, wywołanie ggplot wygląda następująco

Plain Text

Finalny obrazek wygląda tak, jak poniższy – jedynie logo serwisu i skala kolorów zostały wstawione ręcznie. Ostatnia komenda zapisała obrazek do pliku, znajdziesz go w RStudio Cloud w prawym dolnym panelu, w zakładce Files.

Kompletny skrypt znajdziesz tutaj.

kliknij aby powiększyć

I to już wszystko.

Albo nie. Pozostała jeszcze jedna porada.

W niniejszym tekście wykonaliśmy środowisko RStudio Cloud, bo próg wejścia jest tam bardzo niski – wystarczy przeglądarka i minuta na założenie konta, można od razu przystąpić do akcji i wszystko działa. W gratisie dostajesz dostęp do środowiska chmurowego przez 15 godzin miesięcznie. Jeśli dobijesz do tego limitu, to po prostu zainstaluj na swoim komputerze język R wraz z darmowym wydaniem programu RStudio.

PS: ten tekst jest mocno specjalistyczny i jako taki nie będzie zbyt popularny. Zostaw komentarz, jeśli chcesz, aby co jakiś czas na blogu pojawiały się bardziej skomplikowane tematy dla bardziej zaawansowanych czytelników. Dzięki!



O autorze: zawodowy programista od 2003 roku, pasjonat bezpieczeństwa informatycznego. Rozwijał systemy finansowe dla NBP, tworzył i weryfikował zabezpieczenia bankowych aplikacji mobilnych, brał udział w pracach nad grą Angry Birds i wyszukiwarką internetową Microsoft Bing.

3 odpowiedzi na “Najpopularniejsze artykuły z roku 2020 na fajnym wykresie i jak go zrobić”

Zostawiam komentarz, aby co jakiś czas na blogu pojawiały się bardziej skomplikowane tematy dla bardziej zaawansowanych czytelników 😉

Tak, chcę, żeby pojawiały się omówienia tematów bardziej zaawansowanych. Przykład: dostęp zdalny do komputera (VNC), jak nie mamy publicznego IP. Zagadnienia dla programistów też pożądane.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *