Visualization Libraries for Programming Languages: A Timeline


Lab Reports, Timelines, Visualization

Introduction

Since their introduction in the 19th century, computers have been transforming the way we do tasks in our daily lives. Computing technologies have been through continuous and rapid advancements. Along with these advancements the ways in which people use and interact with computers has also evolved. Today, personal computers and mobile devices are an integral part of our daily lives. People use computers to do several varieties of personal and professional tasks. It is noteworthy that several common tasks such as taking notes, drawing and shopping; which earlier needed to be done in disparate ways; are all now done using a computer. The same has happened for creating graphics, plots and data based visualizations, which earlier needed to be done by hand on a paper are now done using computers.

Broadly speaking there are two ways to create data visualizations on a computer. The first way – easier and with a user friendly interface of the two – is by using software applications like MS Excel or other spreadsheet programs. Using this method the users can quickly create visualizations they desire but it is very difficult to maintain their repeatability. The second way – with a bit of a learning curve – is to create the visualizations using a programming language. Visualizations created in such manners are easily repeatable and reproducible. Over the course of time several libraries have been created for this purpose. In this timeline, I have attempted to highlight a few popular data visualization libraries for several programming languages.

Timeline

Tools & Softwares

I used TimelineJS for creating the timeline for this report. TimelineJS is an interactive and open-source tool by knight lab which can be used to quickly and easily build timelines. It uses a google spreadsheet link from which it builds an interactive timeline. Advanced users can build upon this tool to create custom modifications. TimelineJS provides a basic template for the google spreadsheet, so novice users can also take advantage of this tool and create appealing timelines. All the information to build the timeline should be edited in the google spreadsheet and then published.

Method

For choosing the visualization libraries to be included in the timeline; I looked at popular, free and open-sourced libraries. All these libraries are very popular in their respective programming languages and are commonly used for creating visualizations. I started with the libraries that I have used in the past and then searched for other libraries. I kept a broad scope for selecting the visualization libraries by not restricting the search within one particular programming language or one type of visualization.

Once the libraries were selected I started to search for a descriptive image for that library. For libraries which do statistical data visualization like matplotlib and ggplot2, I chose to use a cheat sheet instead of example graphics so as to give a sense of their features to the viewer. For other libraries I used example graphics made using these libraries that showcase the specific use for which these libraries are mostly used. For the background images used in the timelines, I chose the official logos for the libraries wherever possible. For libraries where the clear logo image was not feasible to use, I chose the background color similar to the theme color used in their logo. Along with the image I also described each visualization library in short, keeping the emphasis on its specific use.

matplotlib cheatsheet
Example map from Leaflet
Example visualization from rgl

Results, Interpretation & Reflection

The resulting timeline of the visualization libraries was interactive, informative and visually appealing. After browsing through this timeline, a viewer will quickly have a clear overview of visualization libraries which will aid him to make decisions while choosing a suitable library for creating visualizations. This timeline will also help a less aware individual to explore the popular data visualization libraries.

Example slide of the Leaflet Library for JavaScript from the timeline

Above is an example slide from the timeline of the Leaflet visualization library. Here the background image is of the library’s logo, the display image is of an example visualization of a map – a specific visualization domain for which this library is used – which is accompanied with descriptive text for this library on the right. This design is repeated for all the slides in the timeline.

By not restricting the libraries to one language, I was able to get visualization libraries used for all kinds of visualizations like data statistics, web applications, maps and 3D graphics. This also allowed me to explore libraries that are used for static visualizations as well as interactive visualizations.

To continue this work a further look can be taken into libraries and programming languages which are not free. Programming languages like MATLAB & Simulink from MathWorks can be a strong starting point for this line of inquiry.

References

https://timeline.knightlab.com
https://datavizproject.com
https://www.ferdio.com
https://cdn.knightlab.com/libs/timeline3/latest/embed/index.html?source=1uD1llmMjRCSfybqsqm0ZvjSlcYtUhs0UdlhZJi30O28&font=Default&lang=en&initial_zoom=2&height=650
https://matplotlib.org/cheatsheets/_images/cheatsheets-1.png
https://leafletjs.com/examples/quick-start/thumbnail.png
https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTzMoEqtsNjvcCCtUtH9fOCX8dpYFTm9JyoJw&usqp=CAU