info-design-lab / DE705-Interactive-Data-Visualization

Documentation of the IDC M.Des course Interactive Data Visualization, 3-20 Sep 2019
2 stars 0 forks source link

Data Visualization Tools (2019) #3

Closed venkatrajam closed 4 years ago

venkatrajam commented 5 years ago

In this assignment each of you will select one of the following 18 tools, explore it as thoroughly as you can (download, install, tryout, and use it to create something), and do a demonstration/overview of the tool to the rest of the class. The objective is to introduce the tool to the class, and highlight its possibilities & limitations so the audience can make a well informed choice of available tools. In your comments include links to the resources you used (if any) in your presentations, capturing your personal insights about the tool, and a carefully curated set of related resources.

  1. Observable -- This is a good tool to build interactive exploration and visualization to quickly answer questions and nurture understanding from data.
  2. Chart.js -- Simple, flexible JavaScript charts.
  3. RAW Graphs -- Copy/paste the relevant data directly from your spreadsheet program into RAW, choose a data visualization type, and set your parameters using a drag-and-drop interface. Each individual parameter or visual metric can be adjusted, and the interface is clean and intuitive, making it ideal for beginners.
  4. dygraphs -- Another fast, flexible open source JavaScript charting library.
  5. Palladio -- A good tool to visualize complex historical data which are often qualitative and incomplete in nature, and to build better understanding of the historical material through humanistic inquiry.
  6. Timeline.js -- This is a powerful free tool developed by Northwestern University’s Knight Lab that helps you create engaging, timeline-based visuals to show off your data. Requires no coding. The Jayalalitha Disproportionate Assets Case by one of my students was done using Timeline.js.
  7. Circos -- Circos visualizes data in a circular layout which makes it ideal for exploring relationships between objects or positions. .
  8. Candela -- Open source suite of interoperable web visualization components..
  9. Datawrapper -- Powerful tool that requires no coding.
  10. Leaflet -- Lightweight open-source JavaScript library for mobile-friendly interactive maps.
  11. Google Data Studio -- Free tool from Google and easy to set up if you have a Gmail account.
  12. Tangle -- Tangle is a JavaScript library for creating reactive documents. Your readers can interactively explore possibilities, play with parameters, and see the document update immediately. Excellent for instruction design and process explanation projects.
  13. P5.js -- P5.js is a JavaScript library that sits on top of the Processing visual programming language. As with most JavaSript libraries, Processing.js is web oriented and lets you bring the Processing power to your web pages.
  14. Plotly -- Good suite of visual analytics products.
  15. Gephi -- Open source tool for link an network data analysis and visualization.
  16. OpenRefine -- Formerly Google Refine, OpenRefine is a powerful tool for working with messy data -- cleaning it; transforming it from one format into another; and extending it with web services and external data.
  17. Orange -- Open source machine learning and data visualization for novice and expert. Interactive data analysis workflows with a large toolbox.
  18. R Shiny -- Shiny is an R package that makes it easy to build interactive web apps straight from R. You can host standalone apps on a webpage or embed them in R Markdown documents or build dashboards. You can also extend your Shiny apps with CSS themes, html widgets, and JavaScript actions.
maulicule commented 5 years ago

P5.js

image

About the Tool

js=Java Script P5.js is a JS library created by Lauren McCarthy which allows for a sketch-based approach, built on Processing. It was started with the goal of make programming available to artists, designers, educators, beginners, which makes it a good starting point for design students, especially those new to coding.

Here's an Introduction to P5 which has some pretty good documentation covering different aspects of it.

Using P5

P5 allows us execute a lot of creative projects, with easy to handle code. It's not just for handling data, but can be utilized for data visualization. The P5 code is contained in a JavaScript file (the 'sketch'), which uses variables and keywords along with some special functions. Some of these functions are:

We can use an HTML file is used to wrap the JavaScript sketch so as to run it on the browser, or can make use of the Web-based P5 editor which runs online (however, it cannot run off a local server, which is often required when we source data locally from our devices). The HTML file looks something like this: basic_html_wrapper

In this example, "sketch.js" is the JavaScript file which contains the actual code for the P5 sketch.

I started learning P5.js only a few days before taking the tool tute in class, meaning to say, the 'newbie' perspective was pretty fresh. From this angle, I can go on and say that it is fairly easy to progress after a couple of false starts/teething trouble, till we get the hang of the basic working of the tool. Once that is out of the way, the tool is flexible and extremely fun to play around with!

Some interesting examples (particularly from our perspective of Data Visualization) that I came across are here: This very Basic Bar Graph example which we can modify as per our requirements This Codepen with an animated Circular Array of Bars This geo-visualization in the form of a Cost of Living Map

There aren't too many DataViz-specific examples of P5, probably owing to the fact that P5 can be used for a variety of creative projects, not all of which are data-driven

I found an article by the Visual Data Analysis Lab here which looks at hands-on data visualization using P5, and I tried to follow along with the project discussed here. The project included a nice, clean dataset of different flights in the airports across the world, which the article discussed how to color-code as international and domestic. I further modified it to generate a tool which could be used to explore connecting flights, which looked somewhat like this: image

P5 can handle data by accessing it live from online sources, or in the form of JSON or CSV files.

Extending P5

The advantage of using a JavaScript library (which applies to P5 as well) is that it can be extended to suit our purpose. This is done through using other libraries. Some libraries which can be particularly useful to us in our endeavour to visualize data are:

Depending on our intended use-case, there are several libraries which can help us achieve our goals easily, with reduced coding-effort.

Overall

P5. js is a very versatile tool, and can be used effectively for Data Visualization among other forms of visual coding. However, it is not as data-driven as some other tools like D3.js, nor as objective-focussed as Chart.js or Timeline.js. As it is not directed towards dataviz, finding relevant examples or tutorials can be tricky. Certain basic functionalities of the library can be difficult to discover for a newbie, but the documentation helps. That being said, it is a very handy and powerful tool, and is extremely flexible, giving us as much control as we'd like to have. As the essential part of the code is only a few easy-to-apply lines, it makes for a good transition into coding for beginners, while it can be expanded to adapt to our specific goals depending on our skill level.

Hope I've covered the basics of the tool to make you interested enough to try it out for your next design project, especially if you're planning to create something wonderful with lots of data and a bit of code. The original presentation which I made in class is here

Happy Data Visualizing! -Maulashree

mayura7 commented 5 years ago

DataWrapper

This was one of the easiest and quickest tools. To demonstrate the tool, I decided to use the data from the DVS and show a live demonstration of how to create a chart using DataWrapper. It functions like most other tools:

Step 1: Select the template you want to reuse Step 2: Upload Data Step 3: Check and Describe the Data with attributes Step 4: Proceed to visualization (customize it to your taste) Step 5: Publish it online/ use the code to embed in your website

10 Pointers

Some key points to remember if you want to use DataWrapper:

  1. It is an opensource tool. It can be used without signing up even.
  2. You can get simple maps/ charts/ tables done in less than 3 minutes.
  3. DataWrapperRiver is a special feature if you want to change the visual elements of an existing data. If you reuse a visualization from DataWrapperRiver, you CANNOT alter the data but can change physical attributes like colours, icon shape etc. This is a use-case mainly for Newsroom Journalists, who can use it to change the look of the data gathered by the sources according to their brand guidelines.
  4. Dates can be mapped using DataWrapper but you cannot place Time related data in its format.
  5. Whatever data is uploaded on DataWrapper will be out in the public.
  6. Data can be uploaded from google spreadsheets/ excel/ csv values or from external servers too.
  7. After any change in the data, the visualization needs to be republished.
  8. Depending on whether the data is uploaded from internal/ external server, the settings of updating the data in the visualization differs.
  9. There are some really interesting features that can be used while refining the uploaded data like- prepend/append the values, a colour blind check (to ensure that your visualization is distinctly visible to all), notifications that tell if the data set uploaded is too much/ missing something in order to get the visualization right.
  10. Downloading the visualization in png/pdf format is only possible once you get the paid version.

I found this resource extremely useful to analyse the tool. In conclusion, if you are in a hurry to create a simple visualization, DataWrapper is what you need.

rishivanukuru commented 5 years ago

R, but Shiny

Last Edit 27/10/2019

Introduction

R is a language and environment for statistical computing and graphics.

Stats + Graphics = Data Visualisation

Shiny is a way to share interactive Data Visualizations made in R on the Internet.

The Shiny Parts of R Shiny:

A general rule would be to use R Shiny when dealing with complex data, complex visualisations, or when you want complete control over everything in your visualisation.

The not-so-Shiny Parts of R Shiny

The Presentation

The slides used in class can be found here. Please go through the presentation to see the list of nice Shiny examples, as well as the nice Shiny typography I used in some places.

Before the presentation, I had asked people in class to:

I based my presentation on this incredibly accessible tutorial by the good people at R Studio. It covers everything you need to know about Shiny, and you can get started even if you have little to no knowledge of R.

Apart from that, the best way to learn about R is to have a reason to learn it and begin from there. The R Cookbook is a great place to start learning to code in R, and I've included it in the resources folder linked above. Some general resources for R Shiny are linked below:

In case you have any questions about R or Shiny, feel free to ask.

That's all for now, Rishi

SaiAnjan commented 5 years ago

Observable, A short example

👋Hello all, Observable is an interactive playground for D3 data visualisations. Let's look at how to use it today.

Contents:

Michael Mike Bostock

An american computer scientist who co-created D3.JS has developed Observable HQ. This is a fast and robust online playground for data visualisation and analytics. You can take a look at his notebooks here.

Why Observable

Observable User Manual


Notebooks

A place to quickly write complex data visualisations built on D3. This opens to the true development of D3 and allows you to download, fork, collaborate.

Example earthquake visualisation

Example Notebook


What can you do

Becuase observable allows you to connect to any dataset and databases with D3 and various other scripting techniques lot of people have made cool visualisations and blew my mind. Find insipiration here.

The Nice part

Observable works on github so you can fork, share, merge. But you can also publish on observable or download the code and include in your source code. Learn more about sharing here.

You thought you can only do D3? Pufff....

Observable is an monster web app 😎Start exploring this right now.

Hello World

`

GauriTillu commented 5 years ago

Gephi

Gephi is an open-source exploration and manipulation tool.

You can download the software from here The website also has some links for reference material like the paper published by the developers

Screenshot (8)

Screenshot (9)

Screenshot (10)

Screenshot (11)

Screenshot (12)

Screenshot (13)

Screenshot (14)

Screenshot (15)

You can find examples of usage of Gephi here and a tutorial video here

avyayrkashyap commented 5 years ago

chart.js

Chart.js is a JavaScript library that allows you to draw different types of charts by using the HTML5 canvas element.

There are 6 basic charts that you can create on chart.js:

Pros:

Cons:

The java script, which can be downloaded via NPM, is wrapped in an HTML tag, and the charts are displayed as part of the webpage through a canvas element.

Documentation for this can be found here. The documentation contains the links to getting the package installed and some starting points with many examples.

The JS part involves defining the arrays that appear on the X and Y axis. This can be done by linking the script to a csv or, in the case of small number of data points, by defining the array.

The canvas element is referenced back and there are various parameters that can help define the look of the chart.

Chart.js is a very quick and easy tool to make interactive visualisations that look really good, without needing as much effort as is needed with other charting libraries such D3, P5, etc.

AshmiK commented 5 years ago

Palladio

It is a product of Stanford’s Humanities + Design Lab, a web based visualization tool for complex humanities data.

Fair warning : Lots of bugs, so needs patient handling. Also if you refresh the page you lose everything, if your tab accidentally closes you lose everything, if you go back you lose everything.

Palladio is the tool for you if your data :

You shouldn’t be using Palladio if :

Here is a set of tutorials I used for understanding the tool.

seemskk commented 5 years ago

RAW Graphs

RAW is an open source web tool developed at the DensityDesign Research Lab (Politecnico di Milano) to create custom vector-based visualizations on top of the amazing d3.js library by Mike Bostock. This is one of the simplest data visualisation tools available

Steps to create a plot

  1. Import data in excel file (strings and numbers separated)
  2. It gives you options for visualisations and it also chooses the one that may be the best suited
  3. Dimensions have to be mapped in the X axis, Y axis, colour etc ( depending on the visualisation)
  4. Visualisation is generated and you have an option to embed SVG code
  5. The visualisation can be used for further addition such as interaction by coding

dataviz tool-01 Pros:

  1. easy steps
  2. used more for alluvial diagram, streamgraph and bump chart
  3. Since there is SVG output option, it can be scaled for printing

Cons: The limitation is mostly at the mapping dimension. its not flexible enough to interchange numbers and strings. Its restricted to predefined parameters.

kaishwary08 commented 5 years ago

Leaflet

About Leaflet Leaflet is an open-source JavaScript library that allows for the development of mobile-friendly interactive maps.

Getting Started Leaflet library is well documentation and supported by lots of plugins. To set-up and start, I would recommend to follow the tutorials. Leaflet allows you to make custom made geo-markers, with pop-ups. As it supports GeoJSON files, one may mark areas or territories, make choropleths or may use multiple markers for the geo-location. Its functions gives us immense zoom controls and may group or separate data points depending on zoom levels.

Following which one may create a static or interactive heatmap, or develop custom game maps or everything that's possible using JS. It also supports video overlays triggered and controlled upon use of the webpage.

P.S.: The library supports both Mapbox and Open Street Maps map tiles, though mapbox map API's require an access token key to be procured from the respective mapbox user.

prachitank commented 5 years ago

***Tangle Tangle is a JS library to make reactive HTML documents. It is used to make explanatory content which the reader can interact with and explore.

There is unfortunately little documentation about the library as it was built as an experiment, but it has interesting implementations.

For the presentation, I made a reactive document that could help explore how the P and T stat in the ongoing DRM course worked. The html file can be accessed here.

Accompanying that was a presentation that you can go through which talks about the ways this library can be used and how it compares to other JS libraries which are more broad.

Thanks!

gyanl commented 5 years ago

What is Circos?

Circos is a free and open source software package for visualizing data in a circular layout i.e. as chord diagrams. It has been featured in many scientific and other publications (including the covers of both Science and Nature), so it's safe to say science people really like it.

Why Circos?

Circos is ideal for creating publication-quality infographics and illustrations with a high data-to-ink ratio, richly layered data and pleasant symmetries. You have fine control each element in the figure to tailor its focus points and detail to your audience.

Use in Genomics

Circos is used extensively for the analysis of genomic alterations over time, or differences between two or more genomes. You can take a look here.

How can I use Circos?

From the Circos landing page…

Creation of images is controlled through a plain-text configuration file. There is no interactive user interface. This approach to configuration should be very familiar to you if you have UNIX experience.

The emphasis here is mine, but after spending a while trying to understand the complex system of config files you need to setup, I realised that there is also an online version called Circos Online that allows less flexibility and customization options, but can still be used for visualizing simple tables.

So let's use Circos Online!

Now that we know what Circos can do, let's try and use it!

Pick a dataset.

You can pick whatever you like, but I decided to visualize the patterns in key issue and return for the media lab at IDC. I used the last two filled pages of the key register, which looks like this:

Screenshot of spreadsheet on Google Sheets

Formatting the data

Circos uses :

Putting tables into Circos

Chances are you have your data in a table, isolate just the two values you'd like to look at the relationship between. In my case, I took just the name of the person issuing the keys, and the name of the person returning the keys.

But that poses an issue as Circos can't technically represent tables.

Screenshot of spreadsheet on Google Sheets

Wait so why are we doing this then?

What Circos can do is represent matrices. What's the difference? In mathematics, a matrix is a rectangular array of numbers (whereas a table can have any kinds of values).

Turning tables into matrices

The matrix takes each pair of (key-in-person, key-out-person) data and inserts +1 into the corresponding position on the matrix. I did this manually, but if you can code, it's essentially a matter of converting key-value pairs into a matrix Screenshot of matrix on Google Sheets.

Also remember to put the text "labels" on the top left cell, or Circos Online won't accept the input. Make sure your headers don't have any spaces in them, or Circos will fail and throw a bunch of scary looking errors at you.

Download a .tsv

In Google Sheets, go to File > Download > Tab-separated values (.tsv, Current sheet)

Upload .tsv to Circos

Upload the .tsv to Circos Online. Leave the checkboxes unchecked for now and click on Visualize Table.

The result

It may take a few seconds to load, but once it does, you can pat yourself on the back for a beautiful data visualization.

Chord diagram of key issues

You can now download a large image or a zip with data, images (PNG/SVG) and configuration from Circos online.

Let's look at another example

This data comes from the Data Visualization Community Survey 2019 Challenge.

I extracted the education and gender for people who responded to the survey, and got this.

Education Gender Count
Masters Man 353
Bachelors Man 291
Masters Woman 198
PhD Man 143
Bachelors Woman 128
PhD Woman 72
Technical School Man 31
Masters Prefer not to say 11
Bachelors Prefer not to say 9
PhD Prefer not to say 5
Technical School Woman 4
Bachelors Non-binary 2
Masters Non-binary 2
Masters Woman 2
Technical School Non-binary 1
PhD Non-binary 1

After (once again, manually) converting to a matrix, we get this matrix.

labels Man Woman NonBinary PreferNotToSay
Bachelors 291 128 2 9
Masters 353 198 2 11
PhD 143 71 1 5
TechnicalSchool 31 4 1 -

Result

The result looks something like this:

Chord diagram of key issues

akshayrpatil commented 5 years ago

Google data studio

Content of presentation: Introduction User interface and feature Working demo What’s Working & What’s Missing

Introduction:

  1. It is just a free data visualization tool by Google

  2. Google data studio is based on the simple principle

    Connect visualize and share.

  3. It has a simple drag-and-drop interface, so anyone with a Google account can easily add charts and build reports without needing any deep technical knowledge.

  4. Data Studio dashboards consist of two parts:

    the dashboard and the data source.

    1. you can add data from google drive, google analytics, other google sister app as well as third-party app. Screenshot 2019-11-04 at 6 37 04 AM

      third party apps and many more app

      Screenshot 2019-11-04 at 6 37 16 AM

User interface and feature the starting screen of the Google data studio has three tabs below the header and one left sidebar

Screenshot 2019-11-04 at 6 39 57 AM

Reports let you visualize your data, gain insights, and share those insights with others.

Working demo

  1. Connecting Data Studio to your other account systems from data source (ex. google sheets, google adsense, google drive, or any other supported third party app)

    go to create

    data source and connect data source app such as google analytics, google sheets or upload the data.

    Screenshot 2019-11-04 at 6 50 29 AM

    Once you've added a data source to your account, it's available for you to use anytime you need. Data sources provide a live connection to your Google data studio.

  2. Explore or create report

    Data sources let you manage connections to your data and configure the fields you can use in your report.

    you can adjust connections ex. field, type of field, descriptions aggregate etc to create report and chart after that click on create explore or create a report.

    Screenshot 2019-11-04 at 6 57 41 AM

you will get an option to customize charts according to your data set sorting and formating. you can customize style, data set of report

this option is available at the right sidebar of the interface.

Screenshot 2019-11-04 at 7 04 33 AM

by customizing the report artboard and adding various chart type you can create and visualise data.

Screenshot 2019-11-04 at 7 06 42 AM

What’s Working & What’s Missing

Google data studio is not limited to just 18 widgets You have the ability to add as many report pages as you would like You can connect reports with multiple Google Analytics accounts and views. More inclined towards business than data visualization.

What’s Working

  1. Live Data Connection Data Studio already has built-in connections to several data sources (listed below) eliminating the need to schedule periodic data refreshes for your reports. Link https://datastudio.google.com/reporting/1Rg5y6r0640X8uo2xo2XY48sG9IyMiYEN/page/BEVT

what's missing

  1. Not Enough Visualization Options

    the variety of charts and visualization options are missing from google data studio. other data viz tools like flourish data, data wrapper has many visualisation options.

    you can see on right sidebar, the chart options and type are restricted to less options

    Screenshot 2019-11-04 at 7 12 44 AM

    the link to the final presentation is here

dhirajdethe commented 4 years ago

Candela/ Resonant Lab

Candela is an open-source suite of interoperable web visualization components for Kitware’s Resonant platform. Candela focuses on making visualizations available with a normalized API for use in real-world data science applications.

Here is the documentation of Candela.

With some knowledge of programming, one can learn to create visualizations. Those who are not equipped with the coding skills can use the Resonant lab tool for creating visualizations.

The Resonant lab tool is available in beta and is fairly easy to use but it is limited by the quality of tools. There are a few bugs in the tool that have not been solved yet. overall, it can be used for basic level data visualizations.

Here is the link for the presentation of a tool that includes introduction to Candela and Resonant lab.

I won't suggest this as a good tool for data visualization because of poor quality outcomes and fewer tools available on the platform. Moreover, no tutorials are available to learn the Candela tool and the documentation available on their website does not really help in guiding how to use.

That's all, Thanks!