交互式仪表板(D3.js DC.js crossfilter python),在客户端进行处理

时间:2016-11-28 13:34:06

标签: javascript python d3.js dc.js crossfilter

我想要实施一系列事项以及与之相关的一系列挑战。我正在尝试创建一个非常简单(我认为)的仪表板,我可以在其中可视化具有以下形式的数据:

measurement_place | color | counts | measurement_time |

这可以在excel中显示为堆栈柱形图,如下所示:

stack column chart

“measurement_place”有大约100个不同的值。我正在对这100个“measurement_place”中的每一个进行每小时测量,因此最后,每个转储文件对于100个位置中的每一个都有7天的小时测量值。因此,表格在相同测量时间内如何查找3个不同位置的示例如下:

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

颜色值可以具有20种可能颜色中的一种,不一定每次测量时间都存在。在条形图上显示数据的一个必要条件是每个给定颜色的计数必须为5或更大,如果计数低于5,则应将它们分组在“other_color”下。

我当然可以将这些表格作为CSV或JSON文件。

我想要实现的是生成一种仪表板,其中一方面我有图表和堆栈列,我应该能够以交互方式选择一个子时间段(例如从整周到几个小时或几天),另一方面,在客户端生成一些饼图,并总结了一段时间的统计数据。

我提到它必须在客户端进行处理,因为我没有任何基础设施来托管我的仪表板,但我需要它可以在线使用。为了做到这一点,我发现https://www.smallvictori.es/从其描述中“将文件放入Dropbox文件夹并将其转换为网站。没有CMS,没有安装,没有服务器,不需要编码”。所以基本上我已经尝试(成功)通过将html文件与一些D3js脚本放在一起来创建一个网页,以生成单个非交互式摘要饼图,一点也不复杂。

我想知道是否可以做类似的事情来创建仪表板,使用“smallvictories”来托管渲染/生成使用D3js DCjs创建的交互式仪表板以及可能是crossfilter所需的文件。我有Python的经验和非常基本的javascript知识,但从来没有想过要弄清楚我的项目需要什么。很高兴听到由于必须在客户端进行处理而可能出现的限制,我不知道对CSV或JSON文件大小的建议限制是什么(我猜它不是这样的)每次应创建仪表板时,最佳浏览器下载文件超过100 MB)。也许D3js不是最好的方式去?也许python与其他东西的结合更好地进行处理?

0 个答案:

没有答案