【问题标题】:d3js: data/column required for time series chart with dropdown listd3js:带有下拉列表的时间序列图表所需的数据/列
【发布时间】:2016-10-10 22:00:12
【问题描述】:

我想构建以下时间序列图表

使用以下下拉列表
1. 音量类别( 2. 时间范围 (01/01/2016, ...)
3. 行业(娱乐、金融...)
4. 国家
5. 城市
6. 公司

我参考 Mike Bostock 的多系列折线图 (https://bl.ocks.org/mbostock/3884955)。

使用的数据/列:日期、纽约、旧金山、奥斯汀

我需要哪些特定的列?
1. 公司
2. 工业
3. 国家
4. 城市
5. 时间范围 = x 轴
6. Volume = count(distinct Companies) via group by
7. Volume category = Volume 的 if-condition

导出MySQL数据不获取volume,为什么不获取,参考下图:

[
 {
  "company_name": "Axxxx",
  "industry": "entertainment",
  "country": "USA",
  "city": "SF",
  "date": "2016-01-01"},
 {
  "company_name": "Axxxx",
  "industry": "entertainment",
  "country": "USA",
  "city": "SF",
  "date": "2016-01-01"},
 {
  "company_name": "Axxxx",
  "industry": "entertainment",
  "country": "USA",
  "city": "SF",
  "date": "2016-01-02"},
 {
  "company_name": "Bxxxx",
  "industry": "entertainment",
  "country": "USA",
  "city": "SF",
  "date": "2016-01-01"},
 ...]

问题:如果我使用“分组依据”来查找卷,那么我将丢失 Timeframe 的日期。基本上,我不确定需要从 MySQL DB 中提取哪些数据/列来构建图表和下拉列表。

另外,我正在考虑在加载 JSON 文件后创建可变音量和音量类别。有什么好的例子可以推荐吗?

我目前正在阅读有关构建下拉列表和时间序列图表示例的内容。

【问题讨论】:

    标签: mysql d3.js drop-down-menu dataset time-series


    【解决方案1】:

    您似乎正在寻找一组 TSV 或 json 格式的数据,d3 可以重新处理这些数据以适应下拉列表的任何更改。

    我希望按照时间范围,您的意思是:每天、每周、每月、每季度。

    如果是这样,那么您需要将您的数据保留在其中最好的数据中,仅按行业和城市分组,将不同的公司计算为数量(这意味着您不能将公司作为自己的列),并删除预定的音量类别。

    然后,您可以在事后使用 d3 过滤这些数据,以仅过滤特定行业或城市的那些量,或者对过滤后的城市的所有行业的所有量求和,或者对任何行业的所有行业的所有量求和与过滤的国家/地区匹配的城市等。如果时间范围是最小单位的倍数,则再次针对所有那些 - 每周 7 份日报,每月大约 30 份日报。完成后,您可以在将数据重新绑定到图表并重新绘制之前更新刚刚在数据中求和的体积类别。

    换句话说,下拉列表的每次更改都会使用针对该选择的专门调整的 sql 查询从后端服务重新请求数据,或者您将在每次页面加载时获得一个数据请求并使用 javascript 来调整基于使用nest.keysnest.rollup 选择的数据。

    【讨论】:

      猜你喜欢
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-06
      • 2015-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多