Как добавить простую горизонтальную линию в Y значение JFreeChart TimeSeries
Я создал диаграмму примерно так:
Основной код, используемый для добавления и / или обновления информации:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd H:mm:ss");
Date date = simpleDateFormat.parse(dateAsStringToParse);
Second second = new Second(date);
myInfo.getSeries().addOrUpdate(second, maxValue); // maxValue is an Integer
А для создания актуального графика:
final XYDataset dataset = new TimeSeriesCollection(myInfo.getSeries());
JFreeChart timechart = ChartFactory.createTimeSeriesChart(myInfo.getName()
+ " HPS", "", "HPS", dataset, false, false, false);
Я хотел бы просто добавить горизонтальную линию (параллельную оси X (время)) с постоянным значением, скажем, 10000. Так что график будет выглядеть примерно так:
Какой самый простой (самый правильный) способ добиться этого с помощью моего кода?
1 ответ
Похоже, вы хотите XYLineAnnotation
, но координаты для TimeSeries
может быть хлопотно Начиная с TimeSeriesChartDemo1
Я внес следующие изменения, чтобы получить график.
Во-первых, нам нужно
x
значение для первого и последнегоRegularTimePeriod
вTimeSeries
,long x1, x2; … x1 = s1.getTimePeriod(0).getFirstMillisecond(); x2 = s1.getNextTimePeriod().getLastMillisecond();
Тогда постоянная
y
ценность проста; Я выбрал 140.double y = 140;
Кроме того, вы можете получить значение из вашего
TimeSeries
, например.double y = s1.getMinY() + ((s1.getMaxY() - s1.getMinY()) / 2);
Наконец, мы создаем аннотацию и добавляем ее к графику.
XYLineAnnotation line = new XYLineAnnotation( x1, y, x2, y, new BasicStroke(2.0f), Color.black); plot.addAnnotation(line);