我在Highcharts条形图中看到一个奇怪的问题。我正在尝试渲染不到10k的项目,并且我将我的绘图选项系列turboThreshold
设置为50k。
问题是我是否将我的系列结构化为一个对象数组
series: [
{
name: "string",
y: number
}
]
或作为数组数组
series: [
[
"string",
number
]
]
正在发生的事情是,最多4004项,图表呈现正常。使用4005个项目时,顶部栏向下移动一个,并在第二个栏下方呈现。使用4006,前两个在第三个下面渲染,等等.X轴标签保持良好,它只是移动的条形图。
以下是4007(4004 + 3)项的屏幕截图。如您所见,前三个栏位于第四个栏之下。
使用完整的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 = 100050
和4003 * 25 = 100075
,这就是为什么它似乎就在这个门槛附近开始。