Dwa tygodnie temu pisaliśmy o tym jak z bazy danych o filmach IMDB pobierać dane pakietem rvest. Tydzień temu pokazaliśmy aplikację wytworzoną z pakietem shiny, pozwalającą na porównanie ocen dwóch różnych grup użytkowników. Dzisiaj ostatni odcinek z cyklu IMDB, pokażemy jak używając pakietu ggvis
przygotować grafikę, która pojawia się w aplikacji shiny
.
Pakiet ggvis
wciąż ma mniejszą siłę ekspresji niż jego starszy brat ggplot2
. Ale gdy przychodzi do prezentacji danych na stronie internetowej ggvis
wygląda po prostu świetnie.
Wszystkie dane i kody źródłowe są dostępne na githubie.
Zacznijmy od wczytania danych ze zbioru votesGroup
(na githubie).
Porównajmy kobiety z mężczyznami. Dane obu grup są opisane w kolumnach Males
i Females
. Dane są w formacie tekstowym, musimy je najpierw zamienić na napisy. Dodatkowo stworzymy zmienną jakościową przyjmującą trzy wartości, w zależności od tego czy wynik dla mężczyzn jest o ponad 0.5 większy niż dla kobiet, o ponad -0.5 mniejsze lub w przedziale -0.5, 0.5.
Mając przygotowane dane jesteśmy gotowi do rysowania. Ładujemy bibliotekę ggvis
, tworzymy zręb wykresu funkcją ggvis
, dodajemy do wykresu warstwę z punktami funkcją laver_points
() a następnie zmieniamy opisy osi na Male
i Female
.
Nie najgorzej. Brakuje jeszcze tylko trzech rzeczy.
Na poniższym wykresie dodajemy etykietki z nazwami seriali i średnimi ocenami, etykietki są rysowane funkcją labs.
Dodajemy też przekątną, aby zaznaczyć gdzie jest linia równych ocen pomiędzy grupami, wymaga to stworzenia nowego zbioru danych, który będzie narysowany w osobnej warstwie przez funkcję layer_abline()
.
I jeszcze usuwamy legendę z wykresu, która ostatecznie nie wygląda najlepiej.
A poniżej cały kod.