CS196Illinois / Group35-FA22

1 stars 1 forks source link

Research Data Visualization Tools to build project #4

Open RaghavSaini01 opened 1 year ago

RaghavSaini01 commented 1 year ago

As developers, we want to take some time to scope out and use the most effective data visualization library, framework, or tool for the purposes of our report.

This part involves researching different tools in the following ways:

RaghavSaini01 commented 1 year ago

Probably the best one-off starting point I can find: https://medium.com/sciforce/best-libraries-and-platforms-for-data-visualization-b986a43aee3f

My personal recommendation would be to go between one of R or Python, but Js could be worth exploring if y'all wanna learn too :D

ayanapatidar commented 1 year ago

One of the first steps we'd probably want to take is figure out whether we want our MVP to be interactive or not. If interaction isn't something we think of as particularly important, my vote is to go with Python. The language is optimized for data work, and there's a couple of tools I found that would be great to have at our disposal:

-Seaborn (really nice and clean visualization tool library built off of matplotlib) -This set of tutorials on doing word analysis in Python using libraries like numpy, pandas, sklearn, nltk, and the aforementioned seaborn. The link leads to one specific tutorial, but this user has a set of articles that all deal with this specific type of analysis, if we choose to pursue the word analysis route. The tutorials are paywalled after a certain amount, but you can get around it by using incognito mode.

If we do want something that's interactive though, our best bet will probably be d3.js. Here's some documentation and tutorials:

-Official Documentation. This comes with some examples that can be pretty useful to plug actual data into. -Technology Fundamentals for using d3.js. Another source of the same basic idea is here. -Video Tutorials -Data Binding -Cheat Sheet! -We'd then need to set up a server and a web application to be able to host the site.

This isn't to say that we couldn't make a Python program interactive, we definitely could. In visualization terms however, d3.js will definitely be a lot cleaner, more accessible, and more interactive. I think we might have to take a vote on which direction we want to move in! ^_^

neha-vard commented 1 year ago

This is a good source I found that includes what each library interacts well with: https://www.monterail.com/blog/javascript-libraries-data-visualization

We may want to consider using a library that works well with React if we want to integrate it easily into a website. One such library I found is Frappe Charts. Though there are many others, this one stood out because it includes maps, which may be helpful for our visualizations.

However, d3.js, which Ayana mentioned is very vast and we can do a lot with it. Though it clashes a little with React, there are workarounds.

RaghavSaini01 commented 1 year ago

https://sites.northwestern.edu/researchcomputing/2022/02/03/what-is-the-best-interactive-plotting-package-in-python/ A couple of them are “mash-up libraries” between Python and js that seem to be really neat and versatile, and Bokeh, Plotly, and mpld3 especially seem to have good documentation and be really good for more exploratory, interactive type data vizes rather than an explanatory one

--Saket

michelleruu commented 1 year ago

Firstly, I do think that something interactive would be fun to have (@ayana), and I think I'm currently leaning a little more towards something like d3.js just because it seems like it would be more clean/easier.

I also think what neha-vard posted had a lot of really great resources. I think that the Frappe Charts would be a good choice, and I was looking into React-vis and it seems like a decent choice as well. Honestly I'm down for anything, the "mash-up libraries" that Raghav posted also seem very clean and not too hard to work with.