我有数据(1,3600),(2,4400),...(33,15000)
在(1,3000)中
-> 1是一个数字
-> 3600秒

如果放在图表中,轴将显示“秒”为数字。
我设置了一个代码,以每隔1小时显示一次轴标签。

// Create an NumberAxis
NumberAxis xAxis = new NumberAxis();
xAxis.setTickUnit(new NumberTickUnit(3600));

// Assign it to the chart
xyPlot.setDomainAxis(xAxis);


因此,现在轴标签为:0 ... 3600 ... 7200 ... 10.800 ...

如何使轴标签以小时显示? (0 ... 1 ... 2 ... 3 ...)

最佳答案

一种方法是按1000缩放数据,以表示epoch中的毫秒数。然后,您可以将SimpleDateFormat与合适的TimeZone一起使用以获得所需的效果。

DateAxis axis = new DateAxis("Hour");
SimpleDateFormat format = new SimpleDateFormat("H");
format.setTimeZone(TimeZone.getTimeZone("GMT"));
axis.setDateFormatOverride(format);


 


  时间限制在0到23之间,您知道如何克服吗?


您可以尝试其他格式,例如“ D:H”。或者,按1/3600缩放以表示小时,并使用带有整数刻度单位的NumberAxis

NumberAxis axis = new NumberAxis();
axis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

09-27 22:24