IMDB + ggvis, jak to zrobić?

Screen Shot 2015-03-26 at 09.19.24

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.

Screen Shot 2015-03-26 at 09.19.04

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.

Screen Shot 2015-03-26 at 09.19.24

Dodaj komentarz

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

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">