我知道以前有人问过这个问题,但我无法使用这些示例来找出我做错了什么。
我想创建一个简单的 6 点 3 系列图表,其数据如下所示:
data = [
{"key":"D78","date":"2013-09-23T17:26:21.258Z","value":1.25},
{"key":"D78","date":"2013-09-23T17:28:21.258Z","value":2.25},
{"key":"R71","date":"2013-09-23T17:26:21.258Z","value":2.45},
{"key":"R71","date":"2013-09-23T17:28:21.258Z","value":2.85},
{"key":"X44","date":"2013-09-23T17:26:21.258Z","value":3.87},
{"key":"X44","date":"2013-09-23T17:28:21.258Z","value":3.87}
]
那里没有什么令人兴奋的。我最理想的做法是用这些数据制作一个 3 系列折线图。
svg = d3.select(selector).append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom).append("g")
x = d3.time.scale().range([ 0, width ])
y = d3.scale.linear().range([ height, 0 ])
format = d3.time.format("%Y-%m-%dT%H:%M:%S.%LZ")
valueLine = d3.svg.line().interpolate("basis")
.x((d) ->
console.log format.parse(d.date)
x(format.parse(d.date))
)
.y((d) ->
console.log d.value
y d.value
)
svg.append("path").attr("class", "line")
.attr "d", valueLine(u.where(data, key: "X44"))
生成SVG:<path class="line" d="M137998238125800,-287L137998250125800,-287"></path>
这段代码只是使用 lodash 提取了其中一个系列。问题是:屏幕上什么都没有。它贯穿并获取价值,但没有线条。我发现现有的例子要么很复杂而且没有很好的解释(http://bl.ocks.org/mbostock/3884955)或者缺少关键部分(http://www.d3noob.org/2013/01/adding-多于一条线到图形 in.html)。
- 我的代码有什么问题?
- 如何添加其他系列(R71、D78)?
- 是否有一个很好的教程,其中包含完整的代码并完成所有步骤?