4

我在 Highchart js 中尝试了很多,但仍然找不到减少系列中元素数量的方法。

如果我获得超过 15 天的数据,我必须将其减少回来并作为 15 天的数据显示给用户,以便用户可以在不拥挤数据的情况下查看数据。系列中最多 90 天,我必须减少到 15 天。

在http://jsfiddle.net/MULZL/中检查我当前的代码

谁能给我一个解决方案?

PS:我不想减少到前 15 天或后 15 天。我想这样做只是因为图表中的 90 天看起来很拥挤,我不想应用缩放功能。如果超过 15 天,我想要忽略某些数据(天)的解决方案使其 15 天

4

2 回答 2

0

您可以尝试highStock的 dataGrouping 功能

var dataGrouping = {
    groupPixelWidth: 40,
    units: [[
        'day',
        [1, 2, 3,4,5,6]
        ]]
};

Highcharts 将确保您的所有列都至少是指定的宽度(40),如果列数很大,以至于不可能有那个宽度,它将使用单位对数据进行分组,因此它将对 1 的数据进行分组一天分成 1 列或 2 天分成 1 列,依此类推。不确定您是否真的想要正好 15 个图,但我认为您担心的是避免数据拥挤,这正是这样做的,但列数会根据您指定的宽度、plotArea 的宽度和允许的单位和它的倍数。根据您的数据和图表的宽度调整值。 jsFiddle

于 2012-09-10T14:46:53.713 回答
0

您可以使用Axis.setExtremes方法以编程方式放大所需的时间范围。在您的情况下,您可能希望在加载时执行此操作

这是您的操作方法,如果您想放大给定数据的第一个 15 天,您可以轻松修改为放大过去 15 天。

function zoomTo15Points(chart){
    var points=chart.series[0].points;
    if(points.length<15)   return;
    var min=points[0].x;    
    var max=points[14].x;
    // If you wish to zoom to 15 days and not 15 points, you can modify max as
    // var max=min + 1000*60*60*24*14
    chart.xAxis[0].setExtremes(min,max);    
    chart.showResetZoom();
}

如果您不想让用户缩小,您可以禁用最后一行,但您也必须禁用缩放,否则如果用户在 15 天内缩放,则会出现该按钮。

Highchart 加载时缩放@jsFiddle

于 2012-09-03T07:52:24.597 回答