1

我目前正在制作一个图表,它应该可视化一个固定的时间范围。我希望将时间范围的开始和结束固定在图形的宽度上,并希望根据时间范围设置自定义的刻度数量。

我试图在 highcharts 文档中找到一些东西,但 gwt 似乎没有任何东西,因为 javascript 的“tickpositioner”或“tickpositions”会做。有没有人知道如何在 gwt 中使用解决方案来实现这种行为?

在此处输入图像描述

4

1 回答 1

1

我找到了一个解决方案,我在 JSONObject 中设置刻度定位器并在 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;
    };

}-*/;
于 2014-11-06T08:07:53.773 回答