JFreeChart轴标签,以小时为单位

时间:2015-05-07 07:38:02

标签: java jfreechart axis-labels

我有数据,例如(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 ...)

1 个答案:

答案 0 :(得分:1)

一种方法是将数据缩放1000,以表示epoch的毫秒数。然后,您可以使用SimpleDateFormatTimeZone来获得所需的效果。

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

image

  

小时数限制在0到23之间,任何想法如何克服这个?

您可以尝试其他格式,例如" d:H&#34 ;.或者,按1/3600缩放以表示小时数,并使用带有整数刻度单位的NumberAxis

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

image