2

我想在显示实际值和百分比之间切换。目前数据是从 csv 文件导入的,我处理 csv 以找到数据的域并很好地显示图表。我可以切换到显示百分比,因为轴域变为 0 到 100,但我希望能够切换回实际数据域而无需重新处理 csv 文件。

是否可以将数据附加到轴上以便我可以检索它?像这样的东西:

     vis.append("g")
                .data([calculated_y_domain, [0, 100]])
                .attr("class", "axis yaxis")
                .attr("transform", "translate("+padding+",0)")
                .call(yAxis);

还是有更好的方法?

这里有一个示例http://bl.ocks.org/3131368 我正在整理中,但我这样做的方式将取决于切换轴域的最佳方法。

4

1 回答 1

4

您可以创建两个轴组件,它们利用您的两个比例(百分比和值),并在转换数据时在两个轴之间转换。

var xAxisValue = d3.svg.axis()
    .scale(valueScale)
    .orient("bottom");
var xAxisPercentage = d3.svg.axis()
    .scale(percentageScale)
    .orient("bottom");

d3.select("svg").append("g")
    .attr("class", "x-axis")
    .call(xAxisValue);

/* More code... */

// At the point you want to switch...
var dur = 1500;
d3.select(".x-axis").transition().duration(dur).call(xAxisPercentage);
于 2012-07-17T21:05:45.273 回答