如何在图表中添加高亮标记/区域?

时间:2013-10-07 21:53:19

标签: javascript charts d3.js

我有一个使用D3 js创建的时间序列图表。我想为某些时间间隔添加突出显示区域,以显示在特定时间内发生的某些活动(将有不同类型的活动,因此每个突出显示标记将根据其类型具有不同的颜色)。我希望这个高亮区域从上到下垂直覆盖整个图表。

以下是一个示例: enter image description here

我遇到this question,其中展示了如何使用highcharts进行操作。

截至目前,我使用另一个图表库,每当我想要显示这样的高光区域时,我都会绘制一个面积图。有没有更好的方法来使用d3 js或者我应该绘制一组面积图?

1 个答案:

答案 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

完整代码:

https://gist.github.com/dnprock/dea634bfdb3c33149c61