我有一个应用程序,需要绘制至少5k个数据点,并且大小几乎是无限的。
情节去了:
X轴-> DateTime
Y轴->温度
这是我目前的情节
var plot1 = $.jqplot('chartdiv', dataArray, {
title: 'Default Date Axis',
axes: { xaxis: { renderer: $.jqplot.DateAxisRenderer } },
series: [{ lineWidth: 4, markerOptions: { style: 'square' } }],
numberTicks: 10
});
数据数组至少包含['Date','Temperature']格式的5k点。
问题是它效率极低,并导致浏览器冻结。我不需要它实际上在每个数据点上放置一个标签,也许是几个。谁能给我有关如何优化它的提示?
通过更改标记类型和消除阴影,可以获得更好的性能。我一直在情节中使用这些选项,并取得了不错的成绩:
seriesDefaults: {
lineWidth: 1, shadow: false,
rendererOptions: { smooth: false },
markerOptions: { show: true, shadow: false, size: 2 }
}
这是一个向jqplot添加50k点的示例:http : //jsfiddle.net/xf8d36kc/
我们有一个项目,我们一直在相当快地绘制20-30k点。一旦我们开始达到约100k点,它仍然可以快速显示,但是缩放和与图进行交互的延迟时间为1-3秒,但仍然不会冻结浏览器。从jqplot提取实际数据时,从数据库中导入数据会遇到更多的延迟。
我对绘制大于100k的集并没有多大兴趣,但是在那之后,您可能要开始将数据服务器端分组以限制点数,然后在放大时对其进行扩展以获取更多详细信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句