- index.html that contains the front end of the visualization
I used bulma.io css framework to set the differents charts in a responsive way. This framework provides a tiles disposition to create a grid of content.
The structure of the grid in terms of bulma instructions is the following:
tile is-ancestor | ├───tile is-vertical is-8 | | | ├───tile | | | | | ├───tile is-parent is-vertical | | | ├───tile is-child | | | └───tile is-child | | | | | └───tile is-parent | | └───tile is-child | | | └───tile is-parent | └───tile is-child | └────tile | ├───tile is-parent | └───tile is-child | └───tile is-parent └───tile is-child
div elements that are inside the tiles are created using the
file. This file uses d3.queue to load the
and wait until it finish to execute the function makeGraphs.
The function makeGraphs:
- Parses date time data
- Creates a crossfilter and add the records. A filter represents a multidimensional dataset.
- Definition of the dimension of the crossfilter.
- Groups data on each dimension.
- Define the charts and the id to be used in the html file.
- Update the heatmap if any dc chart get filtered
The barplots are made using standard dc.js api. They are connected through crossfilter.js so when each dimension each filter, the results can be see in the other dimensions. In addition, the Leaflet map is connected to the charts so when one chart is filtered, the results are shown in the heatmap.
The final interactive visualization is available in this block link