如何在JFreeChart中以秒为单位省略分数?

时间:2014-01-21 09:17:34

标签: java jfreechart

Friends,Atlast我只是为数据库中收集的值生成JFreeChart。但就此而言,我只是使用

Second sec = new Second();
Series.add(sec.previous(), ExistingValue);
Series.add(sec, Value);
Dataset = new TimeSeriesCollection(Series);

但它显示的结果包含额外的分数点。它只增加了0.250秒。实际上我希望秒数只增加1.我怎么能得到它?有没有办法从0以外的给定值开始Y角度图表?

enter image description here

4 个答案:

答案 0 :(得分:2)

这里我使用以下代码效果很好。

TimeSeries series1 = new TimeSeries("Random Data", Minute.class);

series1.add(new Minute(mi,hr,dat,mo,yr), value );

答案 1 :(得分:2)

您可以获得对绘图/图表的域轴(x轴)的引用,并设置您喜欢的任何格式的SimpleDateFormat:

JFreeChart chart;
DateAxis axis  = (DateAxis)chart.getXYPlot().getDomainAxis();
axis.setDateFormatOverride(new SimpleDateFormat("HH:mm:ss"));

可以对格式化轴(y轴)进行格式化。

答案 2 :(得分:2)

DateAxis构造函数中,您将找到构造DateAxis的“标准”刻度尺寸集的这段代码:

DateAxis.createStandardDateTickUnits(zone, locale)

渲染轴时,JFreeChart将选择不会导致标签重叠的最小刻度尺寸。您可以随时更改JFreeChart选择的标准尺寸集,只需致电setStandardTickUnits(...)并提供您自己的套装。

或者,您可以关闭自动计时单元选择,只需使用setDateTickUnit()方法设置固定的刻度尺寸,但现在您有责任选择不会导致重叠标签的刻度尺寸。

答案 3 :(得分:1)

实际上我使用以下代码来解决我的问题。就是这样,

        DateFormat formatter = new SimpleDateFormat("hh:mm:ss a");
        DateAxis axis = (DateAxis) Plot.getDomainAxis();
        axis.setDateFormatOverride(formatter);

显示时间如上午01:15:45