Fork me on GitHub

M3nD3

Me and D3...Inspired by Learn Python the Hard Way. Hold on! What Python? You mean the Programming Language?

Yep. I have taken the same approach Zed Shaw outlined in his book for learning D3. And, it turned out super awesome

Repo that hosts my list of projects on Data Visualisation, Java Script, CSS and HTML

Fascination with charts that change at a click of mouse has been a driving force, culminating into this Repo. Central work will be implementing many of the charts and visuals in plain HTML using D3 and Javascript. Supporting libraries like Arquero, Vega also be used for adding data, and needed variety for the visualisation tasks, and goals.

Vision

Build cool visuals and data explorations. In that process bring some insights on data wrangling, programming and bubble up the knowledge specific to the domain of the data being analysed. These charts and scales are built with HTML and CSS tags. Learning D3 is considered daunting since it works at the lowest possible level on the web page. Below that, is simply typing out the html tags by hand. Hosts of Libraries like the following has been built on top of D3 to ease the process of building the visuals.

  1. Vega
  2. Vega Lite
  3. Altair for Python
  4. Plotly : Framework that paved my way towards D3

D3 programs the DOM.

Programming is about the details. To start programming the DOM,the details of the DOM needs to be understood at much deeper level.My learning wouldn't be possible without the resources on the internet. Especially the books and the youtube videos access I had. Following are some of the libraries, tools and books that influenced my learning till date.

Climbing down the Visualisation Abstractions

It all begins with the tags. svg and html tags that build the visualisation which renders casually on the webpage. My visualisation climbs up this visualisation Abstraction ladder. Race car is made beautiful as the parts making it fit precisely and reliably. So is a visualisation. Both are work of engineering and creativity.

Projects on Automating HTML creation

JQuery and D3 are used for automating the content and element placement. Any new libraries used will be updated here. The library source files are located in the repo itself, and linked on the page headers.

  1. Populating the Python Library data on Single page Using D3
  2. Blocks of D3
  3. Data Page
  4. Chart Page Template
  5. Question Answer Template

Learning from the Master

Here I make the ugliest, and broken charts that I can think of. Why call it Ugly? Anything that you create when learning is ugly. That simple. When I am learning from the creator of D3, the best way to learn is to take his examples and break it creative ways.

What I will achieve?

Deeper level Understanding of the tool and in the process find things that one should not do with D3. I have read some 15 books on visualisation. They show the best visuals out there and teach to create them. I am learning here...join me. Lets make things beautiful!!! Together.

  1. Making the ugliest Bar Chart
  2. Selection and Transition In-Detail
  3. Thinking in Joins Transitions

Some charts that give more insights into the work of D3, which I have coded again and tried to come up with common pitfalls, lessons learnt in the following pages.

How to render the files Local machine

After cloning the repo, and changing directory (cd command) into the repo follow the steps below.

  1. Install npm npm installer
  2. Check npm is up and running using npm -v command on your terminal (cmd/sh/ps)
  3. Install live-server using the command npm i -g live-server (-g flag for global installation)
  4. cd into the directory where the html and js files are located
  5. Type live-server in the terminal
  6. Webserver will open up with the Index.html file in the current directory
  7. In order to move between the file, check the Index.html file for the names of the html files
  8. Append the filename to the localhost:portName/"name".html in the address bar