d3 v4折线图数据

时间:2017-11-29 06:47:28

标签: javascript d3.js

我想将这个折线图示例用于我的新格式数据。

https://codepen.io/sky790312/pen/EbdRNb

旧数据格式和x轴:

  const DATA1 = [9.5, 2, 5, 7, 5, 3, 0];
  const LABELS = [
    'monday',
    'tuesday',
    'wednesday',
    'thursday',
    'friday',
    'saturday',
    'sunday'
  ];

新数据格式::

  // parse the date / time
  const parseDate = d3.timeParse('%Y%m%d')
  const formatTime = d3.timeFormat('%y/%m/%d')

  const data = [
    {dataX: '20171016', dataY: 54.13},
    {dataX: '20171017', dataY: 50.13},
    {dataX: '20171018', dataY: 70.13},
    {dataX: '20171019', dataY: 53.98}]
  data.map(d => {
    d.dataX = parseDate(d.dataX)
    d.dataY = +d.dataY
  })

但我仍然面临新格式的问题。

1 个答案:

答案 0 :(得分:0)

你必须使用d3.scaleTime作为你的x轴: https://bl.ocks.org/d3indepth/8948c9936c71e63ef2647bc4cc2ebf78 然后当您使用数据值绑定属性时,您必须使用:

xScale(d.dataX)

而不是:

xScale(LABELS[i])

使用y值相同

d => yScale(d.dataY)

而不是

d => yScale(d)