我目前正在制作一个图表,它应该可视化一个固定的时间范围。我希望将时间范围的开始和结束固定在图形的宽度上,并希望根据时间范围设置自定义的刻度数量。
我试图在 highcharts 文档中找到一些东西,但 gwt 似乎没有任何东西,因为 javascript 的“tickpositioner”或“tickpositions”会做。有没有人知道如何在 gwt 中使用解决方案来实现这种行为?
我目前正在制作一个图表,它应该可视化一个固定的时间范围。我希望将时间范围的开始和结束固定在图形的宽度上,并希望根据时间范围设置自定义的刻度数量。
我试图在 highcharts 文档中找到一些东西,但 gwt 似乎没有任何东西,因为 javascript 的“tickpositioner”或“tickpositions”会做。有没有人知道如何在 gwt 中使用解决方案来实现这种行为?
我找到了一个解决方案,我在 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;
};
}-*/;