1

I have a series of things I would like to implement together with a series of challenges related to them. I am trying to create a very simple (so I think) dashboard where I can visualize data that has the form:

measurement_place | color | counts | measurement_time |

This can be visualized as a stack column chart in excel, at looks something like this:

stack column chart

I have around 100 different values for "measurement_place". I am taking hourly measurements for every one of these 100 "measurement_place", so that at the end, every dump file has 7 days worth of hourly measurement for every one of the 100 places. So an example of how the table looks for 3 different places at the same measurement time is as follows:

measurement_place   color   counts      measurement_time
place_1             blue        2       2016-11-13 18:00:00
place_2             orange      1       2016-11-13 18:00:00
place_2             black       1       2016-11-13 18:00:00
place_2             red         29      2016-11-13 18:00:00
place_2             yellow      1       2016-11-13 18:00:00
place_2             blue        170     2016-11-13 18:00:00
place_3             purple      6       2016-11-13 18:00:00
place_3             red         10      2016-11-13 18:00:00
place_3             green       3       2016-11-13 18:00:00
place_3             yellow      1       2016-11-13 18:00:00
place_3             blue        1066    2016-11-13 18:00:00
place_3             cyan        9       2016-11-13 18:00:00
place_3             rosa        2       2016-11-13 18:00:00
place_3             orange      3       2016-11-13 18:00:00

The colors value can have one of 20 possible colors, not necessarily all present per measurement_time. One requisite to present the data on the bar chart is that the counts per given color have to be 5 or greater, in case of the counts being below 5 they should be grouped under "other_color".

I can, of course, have this tables as CSV's or JSON files.

What I would like to achieve is to generate a sort of dashboard where on one side I have the chart with the stack columns, where I should be able to interactively select a sub-period of time (e.g. from the whole week to some hours or days) and on the other side some pie chart, that is generated on client side, with the statistics for the period of time is summarized.

I mention it has to be processed on client side because I don't have any infrastructure to host my dashboard and yet I need it to be available online. In order to do this I have found https://www.smallvictori.es/ which from its description "takes files in a Dropbox folder and turns them into a website. No CMS, no installation, no server, no coding required". So basically I have tried (with success) creating a web page by placing an html file together with some D3js scripts to generate a single, non-interactive summary pie chart, nothing complicated at all.

I am wondering if it would be possible to do something similar to create the dashboard, use "smallvictories" to host the files needed to render/generate the interactive dashboard created with D3js DCjs and perhaps crossfilter. I have experience with Python and very basic knowledge of javascript, but have never minded getting my hands dirty to learn what is needed to accomplish my projects. It would be great to hear about possible limitations due to the fact that the processing has to be done on client side, I don't know what the recommended limits for the sizes of the CSV or JSON files are (I guess it is not so optimal to have a browser download files over 100 mb every time the dashboards should be created). Perhaps D3js is not the best way to go? Maybe a combination of python with something else is better to do the processing?

aramadorc
  • 27
  • 2
  • 1
    This isn't exactly the best question for SO (questions asking to recommend a framework or approach aren't really allowed), but your current approach should work fine. If you want to do filtering, I would say use DC.js and Crossfilter as you are planning. Your data can fit client-side easily (100 places * 20 colors * 7 days * 24 hours ~ 300,000 data points). Some recommendations for improving your data structure to make this work even better are here (http://stackoverflow.com/questions/22302146/load-large-dataset-into-crossfilter-dc-js/22303107#22303107), but you should be OK as is. – Ethan Jewett Nov 28 '16 at 15:16
  • @EthanJewett : Thanks a lot for your answer :) It was really helpful and yes, I was afraid this question was not so "correct to post". Would you mind advising what the correct forum would be? But again, thanks a lot for your answer! – aramadorc Nov 28 '16 at 16:40
  • The dc.js mailing list is probably better for open ended questions around using that particular library. – Ethan Jewett Nov 28 '16 at 17:10

0 Answers0