2012-05-23 2 views
1

Я пытаюсь создать временной ряд набора данных о ценах, который у меня есть. Все времена сохраняются как время posix, так что миллисекунды после 1970 года, поэтому они требуют создания соответствующего объекта, который может быть передан в TimeSeries. Есть ли какой-либо конкретный объект, который может использоваться как параметр конструктора миллисекунды и по-прежнему предоставлять информацию, такую ​​как день/месяц/год и т. Д., Немного похож на класс Java.util.Date?JFreeChart Time Series

ответ

1

Когда вы заселяете свой TimeSeries, вы можете использовать метод add(RegularTimePeriod, Number).

Существует несколько вариантов реализации RegularTimePeriod, включая Day и Millisecond, в зависимости от структуры ваших данных.

Это все классы jfreechart.

Однако мы обнаружили, что в некоторых наших приложениях создание TimeSeries из RegularTimePeriod было неэффективным с точки зрения памяти - потому что вам необходимо создать новый объект для каждого момента времени в вашей серии. Таким образом, я нашел лучший подход, чтобы написать собственную реализацию AbstractXYDataset, к которой мы могли бы добавить собственные объекты временных рядов. Я должен добавить, что мы тогда используем ChartFactory.createTimeSeriesChart(...), переходя в нашу реализацию AbstractXYDataset; это имеет преимущество использования DateAxis для оси x.

+0

Конечно, но в вашей собственной реализации вам все равно пришлось каким-то образом преобразовать миллисекунды в длину, чтобы какой-то объект был прав? – Bober02

+0

@ Boder02 - да, но наши объекты временного ряда используют классы даты/времени jsr310, поэтому мы конвертируем в Instant, у которого есть метод toEpochMillisLong(). – amaidment