修复了图表中的最小和最大动态时间刻度

时间:2014-11-04 18:24:31

标签: highcharts gwt-highcharts

我目前正在制作图表,该图表应该可视化固定的时间范围。我希望时间框架的开头和结尾固定在图表的宽度上,并希望在两者之间设置自定义的刻度数量,具体取决于时间范围。

我试图在highcharts纪录片中找到一些东西,但似乎gwt没有什么作为" tickpositioner"或" tickpositions"对于javascript会这样做。 有人知道如何在gwt中使用解决方案来实现这种行为吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方案,我在JSONObject中设置了tickpositioner并在javascript中实现了该功能。请注意“positions.info”,因为由于tickpositioner功能,标签预定义的标签格式会丢失。

void setXaxisTicks(XAxis xAxis, Long start, Long end) {
    JSONObject options = xAxis.getOptions();
    options.put("tickPositioner", null);
    configureXAxis(options.getJavaScriptObject(), start, end);
}

private native void configureXAxis(JavaScriptObject javaScriptObject, Number start, Number end) /*-{
    javaScriptObject.tickPositioner = function () {
        var positions = [],
        tick = Math.floor(start),
        increment = Math.ceil((end - start));
        for (tick; tick - increment <= end; tick += increment) {
            positions.push(tick);
        }

        tLen = positions.length;

        positions.info = {
            unitName: "minute",
            higherRanks: {},
            totalRange: positions[tLen - 1] - positions[0]
        };

        return positions;
    };

}-*/;