GithubHelp home page GithubHelp logo

vivekktiwari / gsoc18 Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 1.0 33 KB

GSoC Project Summary: Animint2

Home Page: https://vivekktiwari.github.io/gsoc18/

gsoc googlesummerofcode rstat package animint2 project-summary r gsoc-2018 plot-graph ggplot2

gsoc18's Introduction

Google Summer of Code 2018: Animint2

Project Summary Report

Student: Vivek Kumar

Abstract

animint2 is a R package that allows you to create interactive and animated multi-layer, multi-plot data visualizations using the ggplot2 syntax. The package uses the D3.js JavaScript library for rendering. It helps to discover and understand patterns in large multi-variate datasets. The aim of the project was to document, render, debug the already exsiting animint2 which is the latest version of animint.


Introduction

The initial motive behind the GSoC project was to translate Animint Designer Manual to support the new animint2 syntax, and create additional chapters to further document animint2 usage. The objective was to compile a designer manual for animint2 package that will outline different functions, resolve issues and guide the user through the package. So far there was no proper equivalent documentation for animint2. The ggplot2 dependency has been a major issue over time for animint2 as the package depends on it. Further work done by past contributors reduced the dependency which resulted in two separate packages; ggplot2Animint and animint2. ggplot2Animint is animint2 specific fork of the ggplot2 package to support the changes needed which were not accepted earlier. As we moved long in the project, motive changed to continue the work on animint2 done by fellow contributors and make package ready for CRAN submissions.


First Evaluation

During the first evaluation, major work involved cleaning the animint2 code and documentation for making it ready for CRAN submission (animint2 issue #12). This included removing the outdated package version, declaring global variables, parameters and basic documentation. As we moved forward, it was decided to clean the ggplot2Animint code and internals first. It was planned to submit both packages separately for CRAN. The further work on cleaning ggplot2Animint was done on cran branch of Faizan Khan's repo of forked ggplot2.


Second Evaluation

After cleaning ggplot2Animint code for CRAN submission, we started testing the package with other R packages including ggplot2 which resulted in failed testcases (Issue #4). The possible solution suggested was to merge the ggplot2Animint and animint2 so that we can have a better understanding of error and changes done in ggplot2Animint which also resulted in failed testcases in animint2 was well. Merging the code had the added advantage of submitting only a single package to CRAN. The second evaluation period was spent on merging both the packages into one to remove the dependency. The complete work on merging was done in merge branch of animint2.


Final Evaluation

After merging both the packages, main task was to make sure animint2 and ggplot2 work together in same environment. For this purpose, I started working on renaming all the ggplot2 functions imported from ggplot2Animint. ggplot2 contains more than 500+ functions which were renamed to avoid nameclash so that both functions work independently. Renaming the functions have also resulted in new syntax and functions mentioned below:

# Older syntax
geom_point(aes(xVar, yVar), 
  clickSelects="clickVar", 
  showSelected=c("showVar1", "showVar2", selector.name="selector.value"))

# New syntax
a_geom_point(a_aes(xVar, yVar),
  clickSelects="clickVar",
  showSelected=c("showVar1", "showVar2", selector.name="selector.value"))

There are still a few internal functions left to be renamed which are hard to find and are being used through same name in the environment by both packages (ggplot2 and animint2).


Link to commits

The links to all the commits are given below:

  1. ggplot2Animint cran ready code with renamed functions
  2. Merged Code of ggplot2Animint and animint2
  3. animint2 code with new renamed functions
  4. dataset documentation for animint2

Future Work

The end goal involves further renaming of few internal functions imported from ggplot2 code, documentation of animint2 functions, making animint2 ready for CRAN submission and finally submitting animint2 to CRAN.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.