0

我正在使用 angularjs-nvd3-directives。

我需要根据它们的值对各个条进行着色。我可以使用 angularjs-nvd3-directives 执行此操作,方法是使用一个回调来选择栏并在渲染后对其进行着色。

<nvd3-multi-bar-chart
                data="vm.chartData"
                id="chartOne"
                width="400"
                height="550"
                showXAxis="true"
                showYAxis="true"
                noData="Charts not available"
                delay="2400"
                yAxisTickFormat="vm.yAxisTickFormatFunction()"
                forcey="[0,9]"
                callback="vm.colorFunction()"
                objectequality="true">
            <svg></svg>
        </nvd3-multi-bar-chart>

我在回调函数中的选择器如下所示:

d3.selectAll("rect.nv-bar")
.style("fill", function(d, i){
    return d.y > 50 ? "red":"blue";
});

总体而言,使用 angularjs-nvd3-directives 很好,并且为我节省了一些时间,但是在呈现图表后使用选择器自定义图表似乎需要做很多工作(颜色单个条形、颜色 x/y 轴等......)。

手头的问题是,当调整窗口大小时,它会恢复到原来的蓝色。有没有办法保存我对酒吧的更新?我是否需要为 window.onresize 编写自己的事件(我已经尝试过但似乎不起作用)?

4

1 回答 1

0

As much as I didn't want to, I ended up writing my own directive for my charts and now I have complete control over the charts without having to write a ton of code to undo what angularjs-nvd3-directives did in a callback.

于 2015-01-18T23:28:36.797 回答