Временные ряды JFreeChart

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


person Bober02    schedule 23.05.2012    source источник


Ответы (1)


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

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

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

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

person amaidment    schedule 23.05.2012
comment
Конечно, но в вашей собственной реализации вам все же нужно было каким-то образом преобразовать миллисекунды в какой-то объект, верно? - person Bober02; 23.05.2012
comment
@Boder02 Boder02 - да, но наши объекты временных рядов используют классы даты/времени jsr310, поэтому мы конвертируем в Instant, у которого есть метод toEpochMillisLong(). - person amaidment; 24.05.2012