x-mas tRees with gganimate, ggplot, plotly and friends

At the last homework before Christmas I asked my students from DataVisTechniques to create a ,,Christmas style” data visualization in R or Python (based on simulated data).

Libaries like rbokeh, ggiraph, vegalite, shiny+ggplot2 or plotly were popular last year. This year there are also some nice submissions that use gganimate.

Find source codes here. Plots created last year are here.
And here are homeworks from this year.

Trees created with gganimate (and gifski)



Trees created with ggplot2 (and sometimes shiny)









Trees created with plotly


Trees created with python


Trees created with rbokeh


Trees created with vegalite


Trees created with ggiraph

chRistmas tRees

Year over year, in the last classes before Christmas I ask my students to create a Christmas tree in R.
Classes are about Techniques of data visualisation and usually, at this point, we are discussing interactive graphics and tools like rbokeh, ggiraph, vegalite, googleVis, D3, rCharts or plotly. I like this exercise because with most tools it is easy to create a barchart, but how good must be the tool and the craftsman to handle a christmas tree?

Here is what they did this year (having around 1 hour to finish the task). Knitr scripts.

Update: I am still getting new submissions, feel free to submit yours as well.

Screen Shot 2017-12-22 at 13.07.26Screen Shot 2017-12-22 at 13.04.49

Screen Shot 2017-12-21 at 23.10.40Screen Shot 2017-12-21 at 23.10.23

Screen Shot 2017-12-21 at 22.06.35Screen Shot 2017-12-21 at 22.00.11

Screen Shot 2017-12-21 at 23.11.45Screen Shot 2017-12-21 at 23.11.19

Screen Shot 2017-12-21 at 21.57.54Screen Shot 2017-12-22 at 13.07.54

Screen Shot 2017-12-22 at 23.09.48Screen Shot 2017-12-22 at 23.09.25

Screen Shot 2018-01-09 at 22.37.20Screen Shot 2018-01-09 at 22.20.51

Screen Shot 2018-01-09 at 22.13.01Screen Shot 2018-01-09 at 21.57.06

Screen Shot 2018-01-09 at 21.47.06Screen Shot 2018-01-09 at 21.43.25

Screen Shot 2018-01-09 at 21.39.49Screen Shot 2018-01-09 at 21.22.31

Screen Shot 2017-12-21 at 23.10.48

Równanie Choinki

bokeh_plot-1

Bibliotek i narzędzi do tworzenia interaktywnych wykresów jest cała masa. Poczynając od tych pozwalających przy odrobienie wysiłku na wyrenderowanie praktycznie każdego możliwego wykresu (D3.js), po te generujące wykresy błyskawicznie, ale ograniczone do kilku szablonów (np. NVD3). Aby przetestować elastyczność różnych narzędzi, na ostatnich zajęciach z Technik Wizualizacji Danych wykonaliśmy test choinki – w bibliotece XYZ przygotuj interaktywną choinkę.

Poniższą przygotowali Jan Dyszyński i Maksymilian Mazur z użyciem biblioteki RBokeh (a dokładniej R-owego portu do Bokeh). Kod jest tutaj, przykład poniżej, przy odrobienie zoomu można odczytać równanie tej choinki.



screen-shot-2016-12-24-at-17-30-44

Po lewej i pod tym linkiem jest choinka, której autorem jest Piotr Smuda (najedźcie myszką aby sprawdzić jakie prezenty są pod choinką).

screen-shot-2016-12-23-at-15-03-41

Tutaj jest choinka w googleVis wykonana przez panią Małgorzatę Sobczak.

Kolejna choinka jest w ggiraph. Autorką jest Dorota Łępicka a kod jest tutaj.

screen-shot-2016-12-29-at-20-16-18

SupER notes za (pod?) choinkę


Zbliżają się święta, czas pomyśleć o choince.
A że za trzy dni kolejny SER, więc ogłaszamy konkurs na SupERową choinkę!
(dla inspiracji: rok temu na blogu pokazywaliśmy jak zrobić choinkę w shiny)

Zasady są proste.
Trzeba wysłać do poniedziałku 21 grudnia (tydzień czasu, można wysyłać do końca dnia) choinkę wykonaną w R.
Zresztą, bądźmy otwarci. Choinka może nawet nie być zrobiona w samym R, ale w excelu, scali, pythonie, matlabie lub innym języku, który jest w stanie komunikować się z R.

Może być to tekstowa choinka wypisana na konsoli, może być to graficzna ggchoinka, może być interaktywna, może być to choinka abstrakcyjna, taka jakie znaleźć można na accidental aRt.

Kod choinki (w R lub innym języku) i jej zdjęcie (może być screenshot konsoli lub okienka graficznego) należy wysłać na adres przemyslaw.biecek(at)gmail.com (w tytule proszę wpisać słowo 'Choinka’).

Twórcy najciekawszych choinek otrzymają pod choinkę SupER notesy (100 kartek w linię).

Rozbieramy choinkę – część druga: shiny

Przed świętami pokazaliśmy interaktywną choinkę napędzaną statystykami popularności imion nadawanych dzieciom. Po świętach pokazaliśmy jak w pakiecie ggplot2 narysować choinkę.

Wczoraj pomiędzy Pałacem Kultury i Nauki a Dworcem Centralnym natknąłem się na choinkę, która wciąż świeci. Przyznacie, że choinka w lutym wygląda już dziwnie. Potraktujmy to jako znak, że najwyższy czas do końca rozebrać i naszą choinkę napisaną w shiny.

Co to jest shiny?

Czytaj dalej Rozbieramy choinkę – część druga: shiny

Rozbieramy choinkę – część pierwsza: ggplot2

Przed świętami w tym wpisie pokazaliśmy interaktywną choinkę napędzaną statystykami popularności imion nadawanych dzieciom w Warszawie. Ale święta się już skończyły, czas choinkę rozebrać. W ramach akcji 'rozbieranie choinki’ pokażemy jak można ją zrobić krok po kroku.

Dziś część pierwsza – choinka w ggplot2.

Choinka przedstawia statystyki dla chłopców i dziewcząt. Zacznijmy od prawej części 'dla chłopców’. Punktem wyjścia będzie ramka danych z imieniem, płcią, liczbą wystąpień oraz pozycją na choince, na które dane imię powinno zawisnąć.

# data from
# https://github.com/pbiecek/SmarterPoland_blog/tree/master/2014/choinka
# head(chlopcy)
      imie plec liczba       row        col
1 Amadeusz    M      1 0.9444444 0.05555556
2   Anatol    M      1 0.8888889 0.11111111
3   Arnold    M      1 0.8888889 0.05555556
4   August    M      1 0.8333333 0.16666667
5 Augustyn    M      1 0.8333333 0.11111111
6   Bazyli    M      1 0.8333333 0.05555556

Użyjmy geometrii geom_point() aby pokazać współrzędne do zawieszenia imion.

ggplot(chlopcy, aes(x=col, y=row)) + 
  geom_point()

v1

Czytaj dalej Rozbieramy choinkę – część pierwsza: ggplot2