Polityka jednego dziecka a interaktywne wykresy w R.

We wtorek pisałem o tym jak problemy demograficzne Polski wyglądają na tle innych państw. Dziś też nawiążę do demografii, ale myśl przewodnia dotyczy aspektów technicznych.

Na podstawie danych o rocznej liczbie narodzin na 1000 mieszkańców i o średnim wieku urodzenia pierwszego dziecka pokażę jak w R wykonać grafikę SVG, która jest interaktywna. Tzn po umieszczeniu na stronie pozwala na pewną interakcję.

Zaczęło się od listu od Macieja B. na temat pakietu do programu R o nazwie ‚SVGAnnotation’ (dostępny na OmegaHat). Pakiet ten pozwala na zapisywanie wykresów R do formatu SVG, a dodatkowo pozwala na zawarciu w wykresie prostej interakcji, typu: podpisy aktywowane najechaniem na myszki na punkt/obszar, dodanie suwaka czy pól wyboru. Proste elementy ale użyteczne i do tego można je generować bezpośrednio z R! Nadarzyła się okazja by wypróbować ten pakiet. Nie wszystko jeszcze w nim działa, są problemy z kodowaniem, ale i tak ma interesujące możliwości, jedną z nich pokażę poniżej.

Zacznijmy od danych. Z serwisu nationmaster.com pobrałem dane dotyczące średniego wieku urodzenia pierwszego dziecka (oczywiście średnia liczona tylko dla kobiet, które urodziły jakieś dziecko) oraz rocznej liczby narodzin na 1000 mieszkańców.

Poniższy kod tworzy wykres, dodaje do każdego punktu adnotacje i zapisuje wynik do pliku demografiaInteraktywna.svg.

Wynik powyższego kodu można oglądać poniżej.
Czerwony punkt to Polska. Dla wszystkich punktów można odsłonić nazwę kraju po po najechaniu na punkt kursorem myszki. Starsze przeglądarki mogą nie radzić sobie z przetwarzaniem plików SVG. W chromie aby zobaczyć rysunek trzeba odświeżyć stronę, ale nosze wersje Firefox, IE i Mozilla radzą sobie bez problemu.

Polska, Węgry, Czechy i Słowakia tworzą grupę krajów o najniższej liczbie porodów i najniższym średnim wieku urodzenia dziecka.

4 thoughts on “Polityka jednego dziecka a interaktywne wykresy w R.”

  1. Myślę, że SVg pozwala na zapisanie zbioru widoków i wyświetlania różnych widoków w zależności od tego co się kliknie. Ale pomiędzy ,,widokami” nie będzie pewnie animacji.
    Takie rzeczy, lepiej zrobić używając biblioteki D3.

    Czekam zresztą aż pojawi się pakiet generujący kod w d3js z poziomu R.

    To byłoby coś!

Dodaj komentarz

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