0

我正在创建一个图表,显示一段时间内的数据以进行模拟运行。我遇到的问题是我似乎无法使用 TimeSeriesCollection,因为它使用从 1970 年 1 月 1 日开始的日期对象。我们需要的日期格式是从模拟开始时间向上计数的格式。

例如,如果发生事件导致计数在模拟的 60 分钟标记处增加,则图表上的时间戳将显示为 01:00:00(一小时零分钟零秒)。如果事件发生在第 28 小时、第 19 分钟、第 12 秒,则沿 X 轴的时间戳需要读取 29:19:12。

我正在绘制的数据只是随时间推移的整数。

谁能给我一个快速而肮脏的纲要我如何做到这一点?

编辑:我应该声明我不需要使用 TimeSeriesCollection。我可以使用 JFreeChart 库中的任何和所有实用程序。

4

3 回答 3

2

RelativeDateFormat类正是为此目的而设计的。您的数据不需要更改(它是正确的),只需要调整演示文稿。因此,创建一个 RelativeDateFormat 实例,将模拟的开始时间传递给它,并将其用作轴的日期格式化程序。它将显示相对于开始时间的时间。

于 2013-08-16T05:23:31.707 回答
1

如此处所示,“工厂方法ChartFactory.createTimeSeriesChart()将接受XYDataset域代表 Java纪元毫秒数的任何内容。” 引用的例子扩展了AbstractXYDataset();您可以getX()getY().

图片

于 2013-08-15T21:01:24.843 回答
0

我不知道 TimeSeriesCollection 和 JFreeChart 的详细信息,但是您可以通过存储模拟开始的时间来解决您的问题,这也是相对于 1970 年 1 月 1 日:

long startTime = new Date().getTime();

然后,您可以从 TimeSeriesCollection 中的时间中减去 startTime 值,以获得您的 X 轴值。

于 2013-08-15T20:33:47.147 回答