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角度图表?
答案 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