使用NVD3折线图时不规则绘制

时间:2015-11-03 01:42:51

标签: javascript charts nvd3.js

我想知道是否有人可能能够帮助解决我在NVD3中遇到的问题,其中图表偶尔会被错误地绘制。当我利用标签的切换(即可以显示或隐藏不同线条的位置)时,通常会发生这种情况。结果如下图所示:

enter image description here

最初图表看起来很正常(即单行)。但是,在启用和禁用图表上的其他行后,图像最终会以上面显示的不稳定方式绘制。

如何解决这个问题的任何帮助将不胜感激。我不知道该搜索什么来描述这个问题,如果答案很容易就可以道歉。

1 个答案:

答案 0 :(得分:0)

如果有其他人遇到这种情况(实际上不太可能),我会将问题追溯到以下添加的代码行到" mouseover_line"事件(下面已注释):

            function mouseover_line(evt) {
            var yaxis = data[evt.seriesIndex].yAxis === 2 ? yAxis2 : yAxis1;

            // evt.series.values[evt.pointIndex].x = d3.time.format('%x')(new Date(evt.point.x));
            // evt.series.values[evt.pointIndex].y = d3.format(',')(evt.point.y);

            evt.value = evt.point.x;
            evt.series = {
                value: evt.point.y,
                color: evt.point.color,
                key: evt.series.key
            };
            tooltip
                .duration(0)
                .valueFormatter(function(d, i) {
                    return yaxis.tickFormat()(d, i);
                })
                .data(evt)
                .hidden(false);
        }

我添加了这些线来修复悬停在线图的标签上(我的线图有一个日期时间x轴和逗号分隔的整数y轴)。添加这些线条后,无论何时打开/关闭系列,所需的额外处理时间都会导致线条完全绘制。

不太确定导致问题的机制是什么,但这些线是根本原因。