0

我使用的折线图本质上是http://bl.ocks.org/3883245上的代码副本。我想在图表中添加水平规则,但是当我尝试通过 yAxis.tickValues() 访问计算的刻度值时,我只得到一个空响应。我这样做对吗?

4

1 回答 1

2

tickValues 用于设置自定义的、外部确定的刻度位置。因此,如果您让轴选择值,那么此属性将正确地为空。

添加网格线最简单的方法实际上是添加另一个轴!在示例中,您紧跟以下行链接:

svg.append("g")
    .attr("class", "x axis")
    .attr("transform", "translate(0," + height + ")")
    .call(xAxis);

您可以添加以下内容以附加网格:

svg.append("g").attr("class", "xaxisgrid").call( xAxis.tickFormat("").tickSize(450) );

svg.select("g.xaxisgrid").selectAll(".tick")
    .style('stroke', "#000")
    .style('opacity', 0.4)
    .filter(function(d, i){ return d3.select(this).classed('minor');} )
        .style('opacity', 0.1);

svg.select("g.xaxisgrid .domain").style('fill', 'none');

代码有点粗糙,但应该可以帮助您入门。基本上,我稍微修改了轴生成函数(xAxis)以仅生成刻度,然后我使刻度变得非常长。

于 2012-11-28T23:35:42.933 回答