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

Java 如何在JFreeChart中以秒为单位省略分数?,java,jfreechart,Java,Jfreechart,朋友们,至少我从数据库中为收集到的值生成了JFreeChart。但在这一点上,我只是使用 Second sec = new Second(); Series.add(sec.previous(), ExistingValue); Series.add(sec, Value); Dataset = new TimeSeriesCollection(Series); 但它显示的结果包含额外的分数点。它只是增加了0.250秒。实际上,我只希望秒数以1递增。我怎样才能得到它?有没有办法从给定值开始Y角

朋友们,至少我从数据库中为收集到的值生成了JFreeChart。但在这一点上,我只是使用

Second sec = new Second();
Series.add(sec.previous(), ExistingValue);
Series.add(sec, Value);
Dataset = new TimeSeriesCollection(Series);
但它显示的结果包含额外的分数点。它只是增加了0.250秒。实际上,我只希望秒数以1递增。我怎样才能得到它?有没有办法从给定值开始Y角图表,而不是从0开始


我在这里使用了以下代码,效果很好

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

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

在这里我使用了下面的代码,效果很好

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

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

您可以获取对绘图/图表的域轴(x轴)的引用,并设置任意格式的SimpleDataFormat:

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

设置范围轴(y轴)的格式也可以这样做。

您可以获取绘图/图表的域轴(x轴)的参考,并设置任意格式的SimpleData格式:

JFreeChart chart;
DateAxis axis  = (DateAxis)chart.getXYPlot().getDomainAxis();
axis.setDateFormatOverride(new SimpleDateFormat("HH:mm:ss"));
设置范围轴(y轴)的格式也可以这样做。

在构造函数中,您会发现这段代码为日期轴构造了一组“标准”刻度大小:

DateAxis.createStandardDateTickUnits(zone, locale)
渲染轴时,JFreeChart将选择不会导致标签重叠的最小刻度大小。您可以随时更改JFreeChart选择的标准尺寸集,只需调用并提供您自己的尺寸集即可

或者,您可以关闭自动勾号单位选择,只使用该方法设置一个固定的勾号大小,但现在您有责任选择一个不会导致标签重叠的勾号大小。

在构造函数中,您会发现这段代码为日期轴构建了一组“标准”勾号大小:

DateAxis.createStandardDateTickUnits(zone, locale)
渲染轴时,JFreeChart将选择不会导致标签重叠的最小刻度大小。您可以随时更改JFreeChart选择的标准尺寸集,只需调用并提供您自己的尺寸集即可


或者,您可以关闭自动勾号单位选择,只需使用该方法设置固定的勾号大小,但现在您的责任是选择不会导致标签重叠的勾号大小。

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

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

它显示的时间类似于凌晨01:15:45

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

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

它显示的时间类似于01:15:45AM

覆盖勾号标签格式时必须小心,因为它不一定会更改勾号间距(仅更改标签),并且可能会导致重复标签(例如,如果间距为1/4秒,并且您将标签格式设置为仅显示秒,则可能会得到“14:23:39”显示四次)。覆盖勾号标签格式时必须小心,因为它不一定会更改勾号间距(仅更改标签),并且最终可能会出现重复标签(例如,如果间距为1/4秒,并且您将标签的格式设置为仅显示秒数,则可能会显示四次“14:23:39”)请注意这个问题请注意这个问题