Я пытаюсь создать временной ряд набора данных о ценах, который у меня есть. Все времена сохраняются как время posix, так что миллисекунды после 1970 года, поэтому они требуют создания соответствующего объекта, который может быть передан в TimeSeries. Есть ли какой-либо конкретный объект, который может использоваться как параметр конструктора миллисекунды и по-прежнему предоставлять информацию, такую как день/месяц/год и т. Д., Немного похож на класс Java.util.Date?JFreeChart Time Series
ответ
Когда вы заселяете свой TimeSeries
, вы можете использовать метод add(RegularTimePeriod, Number)
.
Существует несколько вариантов реализации RegularTimePeriod
, включая Day
и Millisecond
, в зависимости от структуры ваших данных.
Это все классы jfreechart.
Однако мы обнаружили, что в некоторых наших приложениях создание TimeSeries
из RegularTimePeriod
было неэффективным с точки зрения памяти - потому что вам необходимо создать новый объект для каждого момента времени в вашей серии. Таким образом, я нашел лучший подход, чтобы написать собственную реализацию AbstractXYDataset
, к которой мы могли бы добавить собственные объекты временных рядов. Я должен добавить, что мы тогда используем ChartFactory.createTimeSeriesChart(...)
, переходя в нашу реализацию AbstractXYDataset
; это имеет преимущество использования DateAxis
для оси x.
Конечно, но в вашей собственной реализации вам все равно пришлось каким-то образом преобразовать миллисекунды в длину, чтобы какой-то объект был прав? – Bober02
@ Boder02 - да, но наши объекты временного ряда используют классы даты/времени jsr310, поэтому мы конвертируем в Instant, у которого есть метод toEpochMillisLong(). – amaidment