我有一个使用D3 js创建的时间序列图表。我想为某些时间间隔添加突出显示区域,以显示在特定时间内发生的某些活动(将有不同类型的活动,因此每个突出显示标记将根据其类型具有不同的颜色)。我希望这个高亮区域从上到下垂直覆盖整个图表。
以下是一个示例:
我遇到this question,其中展示了如何使用highcharts进行操作。
截至目前,我使用另一个图表库,每当我想要显示这样的高光区域时,我都会绘制一个面积图。有没有更好的方法来使用d3 js或者我应该绘制一组面积图?
答案 0 :(得分:5)
我曾经看过这个问题。例如,时间。
您可以将面积和折线图组合在一起。
// y.domain()[1] so area is drawn to cover all chart
var area = d3.svg.area()
.interpolate("basis")
.x(function(d) { return x(d.x_axis); })
.y0(height)
.y1(function(d) { return y(y.domain()[1]); });
var line = d3.svg.line()
.x(function(d) { return x(d.x_axis); })
.y(function(d) { return y(d.y_axis); });
以下是AAPL股票图表的示例,其中突出显示了2012-04-13至2012-04-17。
http://vida.io/documents/TzcZJX4itBebKciQZ
完整代码: