【发布时间】:2015-06-04 21:38:23
【问题描述】:
使用 D3.js 我想创建一个具有水平线的图形,这些水平线由一条线连接。看这个例子:http://s15.postimg.org/7ffms1f7f/tmp.png
在一些教程的帮助下,我设法使用 line 显示水平条。 jsfiddle.net /m2p1xky9/4/
为了显示连接的条形,使用 path 对我来说很有意义。 https://jsfiddle.net/jaa07n6m/2/
// Append Path:
var lineFunction = d3.svg.line()
.x(function(d) { return x(d.letter); })
.y(function(d) { return y(d.frequency); })
.interpolate("linear")
var lineGraph = svg.append("path")
.attr("d", lineFunction(data))
.attr("stroke", "blue")
.attr("stroke-width", 2)
.attr("fill", "none");
但我没有以正确的方式实现它。
我想我需要让 lineFunction 附加两个点。我的方法不起作用:
var lineFunction = d3.svg.line()
.x(function(d) { return x(d.letter); })
.y(function(d) { return y(d.frequency); })
.interpolate("linear")
.x(function(d) { return x(d.letter)+x.rangeBand(); })
.y(function(d) { return y(d.frequency); })
.interpolate("linear");
实现它的正确方法是什么?
【问题讨论】:
-
我回答你的问题了吗?
-
@cool-blue 你做到了。其实我的问题是如何画一条连续的线。但是您的解决方案甚至更好,使我能够为水平段使用不同的厚度。猜猜我的问题不够明确。但是,我希望有一个比直接访问数据数组更优雅的解决方案。类似于 data() 函数。
标签: javascript d3.js path