Highcharts条形图渲染问题 - 条形图彼此渲染

时间:2015-10-30 20:31:46

标签: javascript svg highcharts

我在Highcharts条形图中看到一个奇怪的问题。我正在尝试渲染不到10k的项目,并且我将我的绘图选项系列turboThreshold设置为50k。

问题是我是否将我的系列结构化为一个对象数组

series: [
    {
        name: "string",
        y: number
    }
]

或作为数组数组

series: [
    [
        "string",
        number
    ]
]

正在发生的事情是,最多4004项,图表呈现正常。使用4005个项目时,顶部栏向下移动一个,并在第二个栏下方呈现。使用4006,前两个在第三个下面渲染,等等.X轴标签保持良好,它只是移动的条形图。

以下是4007(4004 + 3)项的屏幕截图。如您所见,前三个栏位于第四个栏之下。

badly rendered bar chart

使用完整的10k项目,您必须向下滚动大约一半(~6000 bar)才能看到“第一个”栏。

我有一个计算,根据项目数确定图表的高度,以保持条形大小大致相同,这似乎工作正常。检查包含div显示它确实是计算设置的高度,并且图表正确呈现所有x轴标签(即使我通过完整的10k项目,最后一个正好在那里图表的底部)。

关于为什么会发生这种情况的任何想法?在4004项目图表高度为100100像素,SVG中是否存在某种可能导致问题的限制或阈值?

(Highcharts 4.1.9,jQuery 1.11.3,用于向后兼容性。)

这是显示行为的fiddle。显然,这与我的y轴相反(因此比例位于顶部)以及y轴和图表标题设置为display: none这一事实有关。

仍然会欣赏有关如何处理此问题的任何想法。我宁愿不必显示y轴标题或图表标题,但即使我确实显示它们,行为仍然会发生。

我同意@Mark在评论中所说的,它似乎是Highcharts中的一个错误,但它与图表标题或y轴标题的可见性无关。我在an updated fiddle中做了一些游戏,发现问题与图表高度有关。图表高度100050px呈现良好,无论其中有多少项。在100075px,顶部栏看起来略微偏离,而在100100px它肯定是错误的。

我在大约4000件物品上出现问题的原因是我正在设置图表高度,如下所示:

$('#container').height(function(){
    return Math.max(400, (25 * numItems));
});

4002 * 25 = 1000504003 * 25 = 100075,这就是为什么它似乎就在这个门槛附近开始。

0 个答案:

没有答案