State of the Art in Java-based Information Visualization on Mobile Devices

State of the Art in Java-based Information Visualization on Mobile Devices

 

Team 

Christian Osebitz, Vienna University of Technology, Student, Vienna, Austria
Bilal Alsallakh, Vienna University of Technology, Institute of Software Technology and Interactive System, Vienna, Austria
 

 

Contact Person 

Christian Osebitz

 

Project 

Researchers often face the problem to gain an insight in their gathered data. Information visualization can remedy this issue but in the new area of mobile devices there is only a small knowledge base. A search on the topic of information visualization on mobile devices revealed that it is a relatively new and active topic, with many software libraries and expert discussions being dedicated to it. A variety of software libraries have been developed to visualize data on mobile applications. Examining all of these libraries is a tedious task for software developers, who need to select an appropriate library for their purpose without the need for extensive tests and experimental implementations. This thesis helps developers in exploring, comparing and selecting a charting library by functionality. After introducing the reader to the general topic of Java-based visualization on mobile devices an overview of state of the art libraries is given. Key figures and key features of the libraries are discussed and compared against each other. Based on this overview and the discussion, five libraries are selected to conduct a detailed performance test by measuring rendering time and memory usage on datasets having different sizes. Both measures should be taken into consideration when choosing a library for visualizing desired volumes of data on mobile devices. The performance test can also be used as reference implementation of a line chart simulating a parallel coordinates chart. Finally, the presented libraries are compared regarding their features and capabilities.

 

Papers 

State of the Art in Java-based Information Visualization on Mobile Devices 

 

Downloads 

Reference Implementation

Measurement results

 

Images 

The following images are example charts provided by the product sites. The charts are rendered with AChartEngine, Androidplot, ShinobiCharts, AFreeChart and Processing.

achartengine_combined.pngandroidplot_line.pngshinobi_line.png

afreechart_candle.png processing_vector.png

 

 

Results 

The search for available libraries provides the following overview of key figures and key features of the libraries. The overview is based on the information published on the product sites.

 

Library

 Distribution

License / price from

 Last activity

Number of charts

 Interactivity

 Additional information

AChartEngine

Version 1.1: 40.742 downloads
Version 1.0 26.510 downloads
Total: 3.000 mobile applications

Apache License v2.0

 May 2013

12

Zoom
Pan

 -

charts4j

Version 1.3: 21.026 downloads

 MIT License

 January 2011

8

Zoom

Uses Google charts API. Calculation in the cloud

Androidplot

Version 0.6: -
Total: 500 mobile applications

 Apache License v2.0

 September 2014

5

Pan
Zoom

supports dynamic and static charts

AFreeChart

Version 0.0.4: 10.237 downloads

 GNU LGPL

 April 2012

9

 -

Based on JFreeChart 1.0.13

Chartdroid

Version 2.0: 8.849 downloads
Total: 5 mobile applications

 Apache License v2.0

 November 2010

5

 -

 -

GraphView

Version 4.0: -
Total: 26 mobile applications

 GNU LGPL

 December 2014

2

 Zoom

 -

Snowdon

 -

 Apache License v2.0

 -

6

 -

 -

Droidcharts

 -

 GNU LGPL

 November 2010

5

 -

Attempt to port JFreeChart to Android

HoloGraph-Library 

 -

 Apache License v2.0

 April 2014

3

 -

 -

Processing

 -

 GNU LGPL

 February 2015

-

Zoom

create graphics with textures, shades

RChart

Version 2.2: -

 45,5 $

 April 2012

14

Pan
Zoom

3D line, bar and pie chart
Bar with images instead of label

aiCharts

Version 1.7: -
Version 2.0 beta: -

 299 $

 -

14

Pan
Zoom

 - 

ShinobiCharts

Version 1.7

 995 $

 -

9

 -

GPU rendering

Android chart library 

Version 1.0: -

 99 $

 -

6

 -

 -

 

 

The number and types of charts supported by the library is one of the main criteria to choose a library. The following table contains the types of chart supported by the libraries.

 

Library

Line

Bar

Pie

Doughnut

Scatter

Area

Bubble

 Other charts

AChartEngine

 X

 X

 X

 X

 X

 X

 X

 time, range (high-low) bar, dial / gauge, cubic line, combined

charts4j

 X

 X

 X

 -

 X

 -

 -

 XY, Radar, Map, Vehn

Androidplot

 X

 X

 X

 -

 X

 -

 -

 Step

Chartdroid

 X

 X

 X

 X

 X

 -

 -

 -

GraphView

 X

 X

 -

 -

 -

 -

 -

 -

Snowdon

 X

 X

 -

 -

 X

 X

 - 

 Histogram, Heat map

Droidcharts

 X

 X

 X

 -

 -

 -

 -

 XY, Category bar

HoloGraphLibrary

 X

 X

 X

 -

 -

 -

 -

 -

Processing

 -

 -

 -

 -

 -

 -

 -

 -

RChart

 X

 X

 X

 

 X

 X

 X

 Gauge, Radar, Multiaxes , Candlestick, Curve, Event, Stacked axis, Stacked bar

aiCharts

 X

 X

 X

 X

 X

 X

 X

 Spline. Radar, Polar, Column, Candlestick, Funnel,  Pyramid, Rose

ShinobiCharts

 X

 X

 X

 -

 X

 X

 -

 Column, Histogram, Stacked, Step

Android chart library

 X

 X

 X

 -

 X

 X

 -

 Column

 

 

Based on the results of the search the following libraries are compared against each other:

·         AChartEngine

·         Androidplot

·         AFreeChart

·         ShinobiCharts

·         Processing

 

The libraries were picked based on the number of charts supported (AChartEngine, Androidplot,AFree Chart) or based on reported high performance (ShinobiCharts, Processing). The comparison is based on a performance test, the measurement of the memory usage, the lines of code used to draw a chart and a list of advantages and disadvantages for every library. The following charts show the result of the performance test and the measurement of the memory usage. ShinobiCharts is excluded as it fails to handle large number of lines ( > 100). The measurement results are available in the download section.

 

duration.pngmemory_usage.png

 

The following table contains the results of the detailed comparison of the selected libraries.

 

Feature

 Libraries

 AChartEngine

 Androidplot

 AFreeChart

 Processing

 ShinobiCharts

Documentation

 Bad

 Good

 Good

 Very good

 Okay

Interaction 

 Zoom, pan

 Not out of Box

 No

 No

 No

Charts

 12

 5

 9

 0

 9

Memory usage

 High

 High

 Little

 Low

 Low

Direct manipulation

 Possible

 No

 Possible

 No

 No

Lines of code

 Most needed

 Okay

 Few

 Few

 Much needed

Rendering

 Fast

 Okay

 Slow

 Fast

 Very slow

 

Further details provided in the thesis.

 

...
 

Product sites

AChartEngine

charts4j

Androidplot

AFreeChart

Chartdroid

GraphView

Snowdon

Droidcharts

HoloGraphLibrary

Processing

RChart

aiCharts

ShinobiCharts

Android chart library